Index: pkg/compiler/lib/src/tree_ir/optimization/logical_rewriter.dart |
diff --git a/pkg/compiler/lib/src/tree_ir/optimization/logical_rewriter.dart b/pkg/compiler/lib/src/tree_ir/optimization/logical_rewriter.dart |
index f4b1a4b50fe87771404836010c7ef0ba972acbab..7138381842ab69260911eb398b74d81013b1c057 100644 |
--- a/pkg/compiler/lib/src/tree_ir/optimization/logical_rewriter.dart |
+++ b/pkg/compiler/lib/src/tree_ir/optimization/logical_rewriter.dart |
@@ -54,17 +54,15 @@ part of tree_ir.optimization; |
/// x && !!y (!!y validated by [isBooleanValued]) |
/// x && y (double negation removed by [putInBooleanContext]) |
/// |
-class LogicalRewriter extends Visitor<Statement, Expression> implements Pass { |
+class LogicalRewriter extends Visitor<Statement, Expression> with PassMixin { |
/// Statement to be executed next by natural fallthrough. Although fallthrough |
/// is not introduced in this phase, we need to reason about fallthrough when |
/// evaluating the benefit of swapping the branches of an [If]. |
Statement fallthrough; |
- void rewrite(FunctionDefinition definition) { |
- if (definition.isAbstract) return; |
- |
- definition.body = visitStatement(definition.body); |
+ void rewriteExecutableDefinition(ExecutableDefinition root) { |
+ root.body = visitStatement(root.body); |
} |
Statement visitLabeledStatement(LabeledStatement node) { |