(isa(exp_self(member)->type, emit->gwion->type[et_function]) > 0 && !is_fptr(emit->gwion, exp_self(member)->type)))
) {
CHECK_BB(emit_exp(emit, member->base, 0))
-// emit_except(emit, member->t_base);
- emit_add_instr(emit, GWOP_EXCEPT);
+ emit_except(emit, member->t_base);
}
if(isa(exp_self(member)->type, emit->gwion->type[et_function]) > 0 && !is_fptr(emit->gwion, exp_self(member)->type))
return emit_member_func(emit, member);
if(GET_FLAG(td, nonnull)) {
if(isa(ret, env->gwion->type[et_void]) > 0)
ERR_O(td_pos(td), _("void types can't be nonnull."))
- if(isa(ret, env->gwion->type[et_object]) < 0 && isa(ret, env->gwion->type[et_function]) < 0)
+ if(isa(ret, env->gwion->type[et_object]) < 0 && isa(ret, env->gwion->type[et_fptr]) < 0)
return ret;
return type_nonnull(env, ret);
}