return Tnone;
if (t) {
- if (propagate_types(b->right, c, perr_local, t, 0) != t &&
- *perr_local & Efail)
- if (b->left->type == Xvar)
- type_err(c, "info: variable '%v' was set as %1 here.",
- cast(var, b->left)->var->where_set, t, rules, NULL);
+ propagate_types(b->right, c, perr_local, t, 0);
} else {
t = propagate_types(b->right, c, perr_local, NULL, 0);
if (t)
}
if (t && t->dup == NULL && !(*perr_local & Emaycopy))
type_err(c, "error: cannot assign value of type %1", b, t, 0, NULL);
+ if (b->left->type == Xvar && (*perr_local & Efail))
+ type_err(c, "info: variable '%v' was set as %1 here.",
+ cast(var, b->left)->var->where_set, t, rules, NULL);
return Tnone;
break;