| Index: pkg/compiler/lib/src/tree_ir/tree_ir_nodes.dart
|
| diff --git a/pkg/compiler/lib/src/tree_ir/tree_ir_nodes.dart b/pkg/compiler/lib/src/tree_ir/tree_ir_nodes.dart
|
| index 5c86d835566adba0e6d5635e3975167c37410f22..432c6c7d44a5c85156c98b99dfb803e537e8474c 100644
|
| --- a/pkg/compiler/lib/src/tree_ir/tree_ir_nodes.dart
|
| +++ b/pkg/compiler/lib/src/tree_ir/tree_ir_nodes.dart
|
| @@ -902,6 +902,21 @@ class ReadTypeVariable extends Expression implements JsSpecificNode {
|
| }
|
| }
|
|
|
| +class CreateInvocationMirror extends Expression implements JsSpecificNode {
|
| + final Selector selector;
|
| + final List<Expression> arguments;
|
| +
|
| + CreateInvocationMirror(this.selector, this.arguments);
|
| +
|
| + accept(ExpressionVisitor visitor) {
|
| + return visitor.visitCreateInvocationMirror(this);
|
| + }
|
| +
|
| + accept1(ExpressionVisitor1 visitor, arg) {
|
| + return visitor.visitCreateInvocationMirror(this, arg);
|
| + }
|
| +}
|
| +
|
| /// Denotes the internal representation of [dartType], where all type variables
|
| /// are replaced by the values in [arguments].
|
| /// (See documentation on the TypeExpression CPS node for more details.)
|
| @@ -946,6 +961,7 @@ abstract class ExpressionVisitor<E> {
|
| E visitReadTypeVariable(ReadTypeVariable node);
|
| E visitTypeExpression(TypeExpression node);
|
| E visitSetField(SetField node);
|
| + E visitCreateInvocationMirror(CreateInvocationMirror node);
|
| }
|
|
|
| abstract class ExpressionVisitor1<E, A> {
|
| @@ -974,6 +990,7 @@ abstract class ExpressionVisitor1<E, A> {
|
| E visitReadTypeVariable(ReadTypeVariable node, A arg);
|
| E visitTypeExpression(TypeExpression node, A arg);
|
| E visitSetField(SetField node, A arg);
|
| + E visitCreateInvocationMirror(CreateInvocationMirror node, A arg);
|
| }
|
|
|
| abstract class StatementVisitor<S> {
|
| @@ -1199,6 +1216,10 @@ abstract class RecursiveVisitor implements StatementVisitor, ExpressionVisitor {
|
| visitTypeExpression(TypeExpression node) {
|
| node.arguments.forEach(visitExpression);
|
| }
|
| +
|
| + visitCreateInvocationMirror(CreateInvocationMirror node) {
|
| + node.arguments.forEach(visitExpression);
|
| + }
|
| }
|
|
|
| abstract class Transformer implements ExpressionVisitor<Expression>,
|
| @@ -1395,4 +1416,9 @@ class RecursiveTransformer extends Transformer {
|
| _replaceExpressions(node.arguments);
|
| return node;
|
| }
|
| +
|
| + visitCreateInvocationMirror(CreateInvocationMirror node) {
|
| + _replaceExpressions(node.arguments);
|
| + return node;
|
| + }
|
| }
|
|
|