]> Nishi Git Mirror - gwion.git/commitdiff
:art: Set scope in fptr arg parsing
authorJérémie Astor <astor.jeremie@wanadoo.fr>
Tue, 12 May 2020 16:16:24 +0000 (18:16 +0200)
committerJérémie Astor <astor.jeremie@wanadoo.fr>
Tue, 12 May 2020 16:16:24 +0000 (18:16 +0200)
src/parse/scan1.c
src/parse/scan2.c

index 76bae39e599efed0dc769bee351743c2eb06c368..6bac630a06366454daacd51ccbb53890f65fa676 100644 (file)
@@ -320,7 +320,12 @@ ANN m_bool scan1_fptr_def(const Env env, const Fptr_Def fptr) {
   }
   const Func_Def fdef = fptr->base->func->def;
   CHECK_OB((fdef->base->ret_type = scan1_type(env, fdef->base->td)))
-  return fdef->base->args ? scan1_args(env, fdef->base->args) : GW_OK;
+  if(!fdef->base->args)
+    return GW_OK;
+  ++env->scope->depth;
+  const m_bool ret = scan1_args(env, fdef->base->args);
+  --env->scope->depth;
+  return ret;
 }
 
 ANN m_bool scan1_type_def(const Env env, const Type_Def tdef) {
index 31698025ed7f679fb3aace2ec406664a7b8a5c0c..7e9bde947fe7802ba987809641e11c3cd0d1569d 100644 (file)
@@ -73,8 +73,12 @@ ANN static Value scan2_func_assign(const Env env, const Func_Def d,
 ANN m_bool scan2_fptr_def(const Env env NUSED, const Fptr_Def fptr) {
   if(!tmpl_base(fptr->base->tmpl)) {
     const Func_Def def = fptr->type->e->d.func->def;
-    if(def->base->args)
-      CHECK_BB(scan2_args(def))
+    if(def->base->args) {
+      ++env->scope->depth;
+      const m_bool ret = scan2_args(def);
+      --env->scope->depth;
+      return ret;
+    }
   } else
     SET_FLAG(fptr->type, func);
   return GW_OK;