X-Git-Url: http://nitlanguage.org diff --git a/src/transform.nit b/src/transform.nit index af19ef6..bf4b992 100644 --- a/src/transform.nit +++ b/src/transform.nit @@ -128,6 +128,13 @@ redef class AOrExpr 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) @@ -218,9 +225,7 @@ redef class ACrangeExpr 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 @@ -229,9 +234,7 @@ redef class AOrangeExpr 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 @@ -282,7 +285,8 @@ redef class AVarReassignExpr 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)