| 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 766d825d077df2570d201d137576d73491eea18a..3bef3f0879b07b116d136b217ba90f569358c685 100644
|
| --- a/pkg/compiler/lib/src/tree_ir/optimization/statement_rewriter.dart
|
| +++ b/pkg/compiler/lib/src/tree_ir/optimization/statement_rewriter.dart
|
| @@ -270,6 +270,7 @@ class StatementRewriter extends Transformer implements Pass {
|
| 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);
|
| }
|
| @@ -613,7 +614,6 @@ class StatementRewriter extends Transformer implements Pass {
|
| return node;
|
| }
|
|
|
| - @override
|
| Expression visitTypeExpression(TypeExpression node) {
|
| for (int i = node.arguments.length - 1; i >= 0; --i) {
|
| node.arguments[i] = visitExpression(node.arguments[i]);
|
| @@ -621,6 +621,13 @@ class StatementRewriter extends Transformer implements Pass {
|
| return node;
|
| }
|
|
|
| + Expression visitCreateInvocationMirror(CreateInvocationMirror node) {
|
| + for (int i = node.arguments.length - 1; i >= 0; --i) {
|
| + node.arguments[i] = visitExpression(node.arguments[i]);
|
| + }
|
| + return node;
|
| + }
|
| +
|
| /// If [s] and [t] are similar statements we extract their subexpressions
|
| /// and returns a new statement of the same type using expressions combined
|
| /// with the [combine] callback. For example:
|
|
|