]> Nishi Git Mirror - gwion.git/commitdiff
:art: Improve VM_Code->ret_type
authorJérémie Astor <fennecdjay@gmail.com>
Sun, 27 Jun 2021 09:28:58 +0000 (11:28 +0200)
committerJérémie Astor <fennecdjay@gmail.com>
Sun, 27 Jun 2021 09:28:58 +0000 (11:28 +0200)
src/emit/emit.c
src/env/func.c

index 6cb5f5eff545ed136e4b36c95b434e4dd3fb4bb1..7326779966dbc0e28e3e102e4ec51205a202ed99 100644 (file)
@@ -2569,6 +2569,7 @@ ANN static inline VM_Code _emit_func_def_code(const Emitter emit,
 ANN static VM_Code emit_func_def_code(const Emitter emit, const Func func) {
   const VM_Code code = _emit_func_def_code(emit, func);
   if (emit->info->memoize && fflag(func, fflag_pure)) code->is_memoize = true;
+  code->ret_type = func->def->base->ret_type;
   return code;
 }
 
@@ -2672,7 +2673,6 @@ ANN m_bool emit_func_def(const Emitter emit, const Func_Def f) {
     const Func base =
         nspc_lookup_func1(func->value_ref->from->owner, f->base->xid);
     builtin_func(emit->gwion->mp, func, (f_xfun)base->code->native_func);
-    func->code->ret_type = fdef->base->ret_type;
     return GW_OK;
   }
   if (fdef_is_file_global(emit, fdef))
index 1073c5eb66a46674b5be56b1eb92c849d82a4601..591db4bda75b01e9ca4b56b58b7328725cd55d66 100644 (file)
@@ -39,4 +39,5 @@ ANN void builtin_func(const MemPool mp, const Func f, void *func_ptr) {
   set_vflag(f->value_ref, vflag_builtin);
   f->code = new_vmcode(mp, NULL, NULL, f->name, f->def->stack_depth, true);
   f->code->native_func = (m_uint)func_ptr;
+  f->code->ret_type = f->def->base->ret_type;
 }