]> Nishi Git Mirror - gwion.git/commitdiff
:art: Fix Array context
authorJérémie Astor <fennecdjay@gmail.com>
Sat, 27 Feb 2021 23:14:20 +0000 (00:14 +0100)
committerJérémie Astor <fennecdjay@gmail.com>
Sat, 27 Feb 2021 23:14:20 +0000 (00:14 +0100)
src/lib/array.c

index 67d29e9c3354e16f2a0421aca7954140b0befd16..b0d4172bd1f43079ec0d55061e9b19ca1e724472 100644 (file)
@@ -443,11 +443,14 @@ static OP_CHECK(opck_array_scan) {
   cdef->base.xid = sym;
   cdef->base.tmpl->base = 1; // could store depth here?
   cdef->base.tmpl->call = new_type_list(env->gwion->mp, type2td(env->gwion, base, (loc_t){}), NULL);
-  const m_uint scope = env_push(env, NULL, base->info->owner);
+  const Context ctx = env->context;
+  env->context = base->info->ctx;
+  const m_uint scope = env_push(env, base->info->owner_class, base->info->owner);
   (void)scan0_class_def(env, cdef);
   const Type t = cdef->base.type;
   (void)traverse_cdef(env, t);
   env_pop(env, scope);
+  env->context = ctx;
   if(GET_FLAG(base, abstract))
     SET_FLAG(t, abstract);
   else