]> Nishi Git Mirror - gwion.git/commitdiff
:art: check usr ops
authorfennecdjay <astor.jeremie@wanadoo.fr>
Mon, 30 Sep 2019 09:20:36 +0000 (11:20 +0200)
committerfennecdjay <astor.jeremie@wanadoo.fr>
Mon, 30 Sep 2019 09:20:36 +0000 (11:20 +0200)
src/parse/scan1.c

index 2d85ffcbd4d6d540a8511bea87f1e3100e56b0b0..bd864bf4c676907dbcfe1b8f1be48cd09eee66c7 100644 (file)
@@ -359,12 +359,14 @@ ANN m_bool scan1_func_def(const Env env, const Func_Def fdef) {
     CHECK_BB(env_storage(env, fdef->flag, td_pos(fdef->base->td)))
   if(tmpl_base(fdef->base->tmpl))
     return GW_OK;
-  if(fdef->base->xid == insert_symbol("@dtor") || fdef->base->xid == insert_symbol("@gack")) {
-    if(!env->class_def)
-      ERR_B(td_pos(fdef->base->td), _("'%s' must be in class def!!"), s_name(fdef->base->xid))
-    if(fdef->base->args)exit(3);
-  } else if(GET_FLAG(fdef, op) && env->class_def)
-    SET_FLAG(fdef, static);
+  if(GET_FLAG(fdef, op)) {
+    if(fdef->base->xid == insert_symbol("@dtor") || fdef->base->xid == insert_symbol("@gack")) {
+      if(!env->class_def)
+        ERR_B(td_pos(fdef->base->td), _("'%s' must be in class def!!"), s_name(fdef->base->xid))
+      if(fdef->base->args)exit(3);
+    } else if(env->class_def)
+      SET_FLAG(fdef, static);
+  }
   struct Func_ fake = { .name=s_name(fdef->base->xid) }, *const former = env->func;
   env->func = &fake;
   ++env->scope->depth;