model: add `MEntity::is_broken`
[nit.git] / src / transform.nit
index ebe2c73..58541c2 100644 (file)
@@ -104,7 +104,12 @@ redef class AExpr
                        var nadd = v.builder.make_call(recv, na.push_callsite.as(not null), [self])
                        place.replace_with(nadd)
                end
-               super
+
+               visit_all(v)
+
+               if is_broken then return # Skip broken
+
+               accept_transform_visitor(v)
        end
 
        redef fun replace_with(other)
@@ -356,6 +361,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)])