Chromium Code Reviews| Index: pkg/compiler/lib/src/tree_ir/tree_ir_tracer.dart |
| diff --git a/pkg/compiler/lib/src/tree_ir/tree_ir_tracer.dart b/pkg/compiler/lib/src/tree_ir/tree_ir_tracer.dart |
| index ad6a31e246209b973ab3d61c587ad5af438642b6..d4e93781ddcbbba84a708e062fc45f0520a91837 100644 |
| --- a/pkg/compiler/lib/src/tree_ir/tree_ir_tracer.dart |
| +++ b/pkg/compiler/lib/src/tree_ir/tree_ir_tracer.dart |
| @@ -58,17 +58,8 @@ class BlockCollector extends StatementVisitor { |
| blocks.add(block); |
| } |
| - void collect(ExecutableDefinition node) { |
| - if (node.body != null) { |
| - if (node is ConstructorDefinition) { |
| - for (Initializer initializer in node.initializers) { |
| - if (initializer is FieldInitializer) { |
| - visitStatement(initializer.body); |
| - } |
| - } |
| - } |
| - visitStatement(node.body); |
| - } |
| + void collect(RootNode node) { |
| + node.forEachBody(visitStatement); |
| } |
| visitLabeledStatement(LabeledStatement node) { |
| @@ -183,7 +174,7 @@ class BlockCollector extends StatementVisitor { |
| } |
| -class TreeTracer extends TracerUtil with StatementVisitor, PassMixin { |
| +class TreeTracer extends TracerUtil with StatementVisitor { |
| // TODO(asgerf): Fix visitors so we don't have to use PassMixin here. |
|
Kevin Millikin (Google)
2015/04/08 15:10:16
I think you can remove this TODO.
asgerf
2015/04/09 09:58:23
Done.
|
| String get passName => null; |
| @@ -195,18 +186,16 @@ class TreeTracer extends TracerUtil with StatementVisitor, PassMixin { |
| BlockCollector collector; |
| int statementCounter; |
| - void traceGraph(String name, ExecutableDefinition node) { |
| - if (node is FunctionDefinition && node.isAbstract) return; |
| - if (node is FieldDefinition && node.body == null) return; |
| + void traceGraph(String name, RootNode node) { |
| + if (node.isEmpty) return; |
| tag("cfg", () { |
| printProperty("name", name); |
| - rewrite(node); |
| + printRootNode(node); |
| collector.blocks.forEach(printBlock); |
| }); |
| } |
| - @override |
| - void rewriteExecutableDefinition(ExecutableDefinition node) { |
| + void printRootNode(RootNode node) { |
| collector = new BlockCollector(); |
| names = new Names(); |
| statementCounter = 0; |