const Type common = find_common_anc(e->type, type);
if(common)
return GW_OK;
- if(check_implicit(env, insert_symbol("@implicit"), e, type) < 0)
+ const Symbol sym = insert_symbol("@implicit");
+ if(check_implicit(env, sym, e, type) < 0)
ERR_B(e->pos, _("array init [...] contains incompatible types ..."))
set_cast(env, type, e); // ???
return GW_OK;
insert_symbol(t->e->owner->name));
return check_lambda(env, owner, &e->d.exp_lambda, t->e->d.func->def);
}
- if(implicit)
- return check_implicit(env, insert_symbol("@implicit"), e, t);
+ if(implicit) {
+ const Symbol sym = insert_symbol("@implicit");
+ return check_implicit(env, sym, e, t);
+ }
}
return match ? 1 : -1;
}