]> Nishi Git Mirror - gwion.git/commitdiff
:bug: :art: fix global lambds
authorJérémie Astor <fennecdjay@gmail.com>
Fri, 13 Aug 2021 18:49:38 +0000 (20:49 +0200)
committerJérémie Astor <fennecdjay@gmail.com>
Fri, 13 Aug 2021 18:49:38 +0000 (20:49 +0200)
src/lib/lib_func.c

index d0a17d406e60cbe53cd24985e35ea5b551fac3c7..2ca87853e0a419f9a08973224dad535df5dfb523 100644 (file)
@@ -273,15 +273,15 @@ ANN static m_bool _check_lambda(const Env env, Exp_Lambda *l,
   UNSET_FLAG(l->def->base, global);
   l->def->base->values = env->curr->info->value;
   const m_uint scope   = env->scope->depth;
-  //  if(GET_FLAG(def->base, global) && !l->owner &&
-  //  def->base->func->value_ref->from->owner_class)
-  // env_push(env, NULL, env->context->nspc);
+  if(GET_FLAG(def->base, global) && !l->owner &&
+    def->base->func->value_ref->from->owner_class)
+   env_push(env, NULL, env->context->nspc);
   env->scope->depth = 0;
   const m_bool ret  = traverse_func_def(env, l->def);
   env->scope->depth = scope;
-  //  if(GET_FLAG(def->base, global) && !l->owner &&
-  //  def->base->func->value_ref->from->owner_class)
-  // env_pop(env, scope);
+    if(GET_FLAG(def->base, global) && !l->owner &&
+    def->base->func->value_ref->from->owner_class)
+   env_pop(env, scope);
 
   if (l->def->base->func) {
     if (env->curr->info->value != l->def->base->values) {