| Index: pkg/compiler/lib/src/tree_ir/optimization/statement_rewriter.dart
|
| diff --git a/pkg/compiler/lib/src/tree_ir/optimization/statement_rewriter.dart b/pkg/compiler/lib/src/tree_ir/optimization/statement_rewriter.dart
|
| index f845e43a340000e6b7d2f7dfa227cf34e184e0f6..1f5fea0e4ab43f379a60c2e3fe484ec279471075 100644
|
| --- a/pkg/compiler/lib/src/tree_ir/optimization/statement_rewriter.dart
|
| +++ b/pkg/compiler/lib/src/tree_ir/optimization/statement_rewriter.dart
|
| @@ -2,7 +2,10 @@
|
| // for details. All rights reserved. Use of this source code is governed by a
|
| // BSD-style license that can be found in the LICENSE file.
|
|
|
| -part of tree_ir.optimization;
|
| +library tree_ir.optimization.statement_rewriter;
|
| +
|
| +import 'optimization.dart' show Pass;
|
| +import '../tree_ir_nodes.dart';
|
|
|
| /**
|
| * Performs the following transformations on the tree:
|
| @@ -109,8 +112,8 @@ class StatementRewriter extends Transformer implements Pass {
|
| String get passName => 'Statement rewriter';
|
|
|
| @override
|
| - void rewrite(RootNode node) {
|
| - node.replaceEachBody(visitStatement);
|
| + void rewrite(FunctionDefinition node) {
|
| + node.body = visitStatement(node.body);
|
| }
|
|
|
| /// True if targeting Dart.
|
| @@ -269,7 +272,6 @@ class StatementRewriter extends Transformer implements Pass {
|
| // and/or if it is better handled at the CPS level.
|
| return exp is Constant ||
|
| exp is This ||
|
| - exp is ReifyTypeVar ||
|
| exp is CreateInvocationMirror ||
|
| exp is InvokeStatic && exp.isEffectivelyConstant ||
|
| exp is VariableUse && constantEnvironment.containsKey(exp.variable);
|
| @@ -331,18 +333,6 @@ class StatementRewriter extends Transformer implements Pass {
|
| return node;
|
| }
|
|
|
| - Statement visitVariableDeclaration(VariableDeclaration node) {
|
| - if (isEffectivelyConstant(node.value)) {
|
| - node.next = visitStatement(node.next);
|
| - } else {
|
| - inEmptyEnvironment(() {
|
| - node.next = visitStatement(node.next);
|
| - });
|
| - }
|
| - node.value = visitExpression(node.value);
|
| - return node;
|
| - }
|
| -
|
| /// Process nodes right-to-left, the opposite of evaluation order in the case
|
| /// of argument lists..
|
| void _rewriteList(List<Node> nodes) {
|
| @@ -422,12 +412,6 @@ class StatementRewriter extends Transformer implements Pass {
|
| return node;
|
| }
|
|
|
| - Statement visitFunctionDeclaration(FunctionDeclaration node) {
|
| - new StatementRewriter.nested(this).rewrite(node.definition);
|
| - node.next = visitStatement(node.next);
|
| - return node;
|
| - }
|
| -
|
| Statement visitReturn(Return node) {
|
| node.value = visitExpression(node.value);
|
| return node;
|
| @@ -553,10 +537,6 @@ class StatementRewriter extends Transformer implements Pass {
|
| return node;
|
| }
|
|
|
| - Expression visitReifyTypeVar(ReifyTypeVar node) {
|
| - return node;
|
| - }
|
| -
|
| Expression visitLiteralList(LiteralList node) {
|
| _rewriteList(node.values);
|
| return node;
|
|
|