]> Nishi Git Mirror - gwion.git/commitdiff
:art: Improve lambda tests
authorfennecdjay <fennecdjay@gwion.tk>
Tue, 10 Nov 2020 22:16:54 +0000 (23:16 +0100)
committerfennecdjay <fennecdjay@gwion.tk>
Tue, 10 Nov 2020 22:16:54 +0000 (23:16 +0100)
src/emit/emit.c
src/parse/check.c

index 526f237ceb1c89107d3a177d8051dcf036bd2d58..410b0b1376a2143301d82b450ae11cbd90866e9b 100644 (file)
@@ -2045,7 +2045,7 @@ ANN static m_bool emit_fdef(const Emitter emit, const Func_Def fdef) {
 }
 
 static ANN int fdef_is_file_global(const Emitter emit, const Func_Def fdef) {
-  return isa(fdef->base->func->value_ref->type, emit->gwion->type[et_lambda]) < 0 &&
+  return !fbflag(fdef->base, fbflag_lambda) &&
     !emit->env->class_def && !GET_FLAG(fdef->base, global) && !fdef->base->tmpl &&
     !emit->env->scope->depth;
 }
index 07ffe7488a3664971b19f25b836aa218f98ca856..c8d0b4214277458e8bd85f7f048f1669b13fb4cc 100644 (file)
@@ -317,7 +317,7 @@ ANN static Type prim_id_non_res(const Env env, const Symbol *data) {
   }
   prim_self(data)->value = v;
   if(env->func) {
-    if(isa(env->func->value_ref->type, env->gwion->type[et_lambda]) > 0)
+    if(fbflag(env->func->def->base, fbflag_lambda))
       check_upvalue(env, prim_self(data));
     if(env->func && !GET_FLAG(v, const) && v->from->owner)
       unset_fflag(env->func, fflag_pure);