var btype = v.base_variable_ctx.stype(variable)
if not v.check_conform_expr(n_value, btype) then return
- # Bypasse cast if then current type does not match
- if not n_value.stype < t then v.variable_ctx.stype(variable) = btype
+ # Always cast
+ v.variable_ctx.stype(variable) = n_value.stype
_is_typed = true
end
var btype = v.base_variable_ctx.stype(variable)
if not v.check_conform(n_value, t2, btype) then return
- # Bypasse cast if then current type does not match
- if not t2 < t then v.variable_ctx.stype(variable) = btype
+ # Always cast
+ v.variable_ctx.stype(variable) = t2
_is_typed = true
end
end
redef class AOrExpr
- redef meth after_typing(v)
+ redef meth accept_typing(v)
do
var old_var_ctx = v.variable_ctx