X-Git-Url: http://nitlanguage.org diff --git a/src/transform.nit b/src/transform.nit index de99e26..3499d9b 100644 --- a/src/transform.nit +++ b/src/transform.nit @@ -17,7 +17,6 @@ module transform import astbuilder -import astvalidation import semantize intrude import semantize::scope intrude import semantize::typing @@ -107,7 +106,7 @@ redef class AExpr visit_all(v) - if mtype == null and not is_typed then return # Skip broken + if is_broken then return # Skip broken accept_transform_visitor(v) end @@ -117,6 +116,7 @@ redef class AExpr super if other isa AExpr then if other.implicit_cast_to == null then other.implicit_cast_to = implicit_cast_to + other.vararg_decl = vararg_decl end end end @@ -369,6 +369,8 @@ redef class AArrayExpr # ~~~ redef fun full_transform_visitor(v) do + if is_broken then return # Skip broken + var nblock = v.builder.make_block var nnew = v.builder.make_new(with_capacity_callsite.as(not null), [v.builder.make_int(n_exprs.length)]) @@ -394,7 +396,7 @@ redef class ACrangeExpr # `[x..y]` is replaced with `new Range[X](x,y)` redef fun accept_transform_visitor(v) do - if parent isa AForExpr then return # to permit shortcut ranges + if parent isa AForGroup then return # to permit shortcut ranges replace_with(v.builder.make_new(init_callsite.as(not null), [n_expr, n_expr2])) end end @@ -403,7 +405,7 @@ redef class AOrangeExpr # `[x..y[` is replaced with `new Range[X].without_last(x,y)` redef fun accept_transform_visitor(v) do - if parent isa AForExpr then return # to permit shortcut ranges + if parent isa AForGroup then return # to permit shortcut ranges replace_with(v.builder.make_new(init_callsite.as(not null), [n_expr, n_expr2])) end end