X-Git-Url: https://ocean-lang.org/code/?p=ocean;a=blobdiff_plain;f=csrc%2Foceani.mdc;h=c80c99262004c6b39f82ca924e7e513fb3fddfaf;hp=a62534814a880fd01aa9c78cdfce316edbb81a37;hb=a90cecd0016cf35d400d6de895f1b2aa6c5ac0dd;hpb=69ba500597a59e484af0fa351bdd4d0b5fe53df4 diff --git a/csrc/oceani.mdc b/csrc/oceani.mdc index a625348..c80c992 100644 --- a/csrc/oceani.mdc +++ b/csrc/oceani.mdc @@ -2293,9 +2293,7 @@ correctly. *perr |= Eruntime; if (v->constant) *perr |= Econst; - if (!type) - return v->type; - return type; + return v->type; } ###### interp exec cases @@ -4803,7 +4801,8 @@ be declared at any time. return Tnone; if (t) { - if (propagate_types(b->right, c, perr_local, t, 0) != 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);