X-Git-Url: https://ocean-lang.org/code/?p=ocean;a=blobdiff_plain;f=csrc%2Foceani.mdc;h=0605d97b4a82918ddf952f1cbb761748d8855a32;hp=c80c99262004c6b39f82ca924e7e513fb3fddfaf;hb=e2a65d5ff4140a6bb67fc38845ddabf7928789bd;hpb=a90cecd0016cf35d400d6de895f1b2aa6c5ac0dd diff --git a/csrc/oceani.mdc b/csrc/oceani.mdc index c80c992..0605d97 100644 --- a/csrc/oceani.mdc +++ b/csrc/oceani.mdc @@ -4801,11 +4801,7 @@ be declared at any time. 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) @@ -4826,6 +4822,9 @@ be declared at any time. } 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;