rta: do not enter in annotations
[nit.git] / src / flow.nit
index ffd103f..e72ddbc 100644 (file)
@@ -49,8 +49,10 @@ private class FlowVisitor
                        if node isa AExpr then
                                var flow = self.current_flow_context
                                node.after_flow_context = flow
+                               # Force the creation of a specific merge after the analysis of the node.
                                if flow.when_true != flow or flow.when_false != flow then
-                                       #self.make_sub_flow
+                                       self.make_sub_flow
+                                       self.current_flow_context.name = "AUTOSUB"
                                end
                        end
 
@@ -62,7 +64,7 @@ private class FlowVisitor
 
        fun visit_expr(node: AExpr): FlowContext
        do
-               self.visit(node)
+               self.enter_visit(node)
                return node.after_flow_context.as(not null)
        end
 
@@ -88,7 +90,7 @@ private class FlowVisitor
                                file.write "F{f.object_id} -> F{f.when_false.object_id}[label=FALSE,style=dotted];\n"
                        end
                end
-               file.write("\n")
+               file.write("\}\n")
                file.close
        end
 
@@ -552,3 +554,11 @@ redef class AIsaExpr
                v.make_sub_true_false_flow
        end
 end
+
+redef class AProxyExpr
+       redef fun accept_flow_visitor(v)
+       do
+               var after_expr = v.visit_expr(self.n_expr)
+               v.current_flow_context = after_expr
+       end
+end