end
end
+redef class AImpliesExpr
+ redef fun accept_transform_visitor(v)
+ do
+ # TODO
+ end
+end
+
redef class AAndExpr
# `x and y` is replaced with `if x then y else x`
redef fun accept_transform_visitor(v)
redef fun accept_transform_visitor(v)
do
var mtype = self.mtype.as(MClassType)
- var meth = v.get_method(self, "init", mtype.mclass)
-
- replace_with(v.builder.make_new(mtype, meth, [n_expr, n_expr2]))
+ replace_with(v.builder.make_new(mtype, init_callsite.mproperty, [n_expr, n_expr2]))
end
end
redef fun accept_transform_visitor(v)
do
var mtype = self.mtype.as(MClassType)
- var meth = v.get_method(self, "without_last", mtype.mclass)
-
- replace_with(v.builder.make_new(mtype, meth, [n_expr, n_expr2]))
+ replace_with(v.builder.make_new(mtype, init_callsite.mproperty, [n_expr, n_expr2]))
end
end
do
var variable = self.variable.as(not null)
- var nread = v.builder.make_var_read(variable)
+ var nread = v.builder.make_var_read(variable, read_type.as(not null))
+
var nnewvalue = v.builder.make_call(nread, reassign_callsite.mproperty, [n_value])
var nwrite = v.builder.make_var_assign(variable, nnewvalue)