| OLD | NEW |
| 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 library tree_ir_nodes; | 5 library tree_ir_nodes; |
| 6 | 6 |
| 7 import '../constants/expressions.dart'; | 7 import '../constants/expressions.dart'; |
| 8 import '../constants/values.dart' as values; | 8 import '../constants/values.dart' as values; |
| 9 import '../cps_ir/cps_ir_nodes.dart' as cps_ir; | 9 import '../cps_ir/cps_ir_nodes.dart' as cps_ir; |
| 10 import '../dart_types.dart' show DartType, GenericType; | 10 import '../dart_types.dart' show DartType, GenericType; |
| (...skipping 644 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 655 applyPass(Pass pass) => pass.rewriteConstructorDefinition(this); | 655 applyPass(Pass pass) => pass.rewriteConstructorDefinition(this); |
| 656 } | 656 } |
| 657 | 657 |
| 658 abstract class JsSpecificNode implements Node {} | 658 abstract class JsSpecificNode implements Node {} |
| 659 | 659 |
| 660 class CreateBox extends Expression implements JsSpecificNode { | 660 class CreateBox extends Expression implements JsSpecificNode { |
| 661 accept(ExpressionVisitor visitor) => visitor.visitCreateBox(this); | 661 accept(ExpressionVisitor visitor) => visitor.visitCreateBox(this); |
| 662 accept1(ExpressionVisitor1 visitor, arg) => visitor.visitCreateBox(this, arg); | 662 accept1(ExpressionVisitor1 visitor, arg) => visitor.visitCreateBox(this, arg); |
| 663 } | 663 } |
| 664 | 664 |
| 665 class CreateClosureClass extends Expression implements JsSpecificNode { | 665 class CreateInstance extends Expression implements JsSpecificNode { |
| 666 ClosureClassElement classElement; | 666 ClassElement classElement; |
| 667 List<Expression> arguments; | 667 List<Expression> arguments; |
| 668 | 668 |
| 669 CreateClosureClass(this.classElement, this.arguments); | 669 CreateInstance(this.classElement, this.arguments); |
| 670 | 670 |
| 671 accept(ExpressionVisitor visitor) => visitor.visitCreateClosureClass(this); | 671 accept(ExpressionVisitor visitor) => visitor.visitCreateInstance(this); |
| 672 accept1(ExpressionVisitor1 visitor, arg) { | 672 accept1(ExpressionVisitor1 visitor, arg) { |
| 673 return visitor.visitCreateClosureClass(this, arg); | 673 return visitor.visitCreateInstance(this, arg); |
| 674 } | 674 } |
| 675 } | 675 } |
| 676 | 676 |
| 677 class GetField extends Expression implements JsSpecificNode { | 677 class GetField extends Expression implements JsSpecificNode { |
| 678 Expression object; | 678 Expression object; |
| 679 Element field; | 679 Element field; |
| 680 | 680 |
| 681 GetField(this.object, this.field); | 681 GetField(this.object, this.field); |
| 682 | 682 |
| 683 accept(ExpressionVisitor visitor) => visitor.visitGetField(this); | 683 accept(ExpressionVisitor visitor) => visitor.visitGetField(this); |
| (...skipping 27 matching lines...) Expand all Loading... |
| 711 E visitLogicalOperator(LogicalOperator node); | 711 E visitLogicalOperator(LogicalOperator node); |
| 712 E visitNot(Not node); | 712 E visitNot(Not node); |
| 713 E visitLiteralList(LiteralList node); | 713 E visitLiteralList(LiteralList node); |
| 714 E visitLiteralMap(LiteralMap node); | 714 E visitLiteralMap(LiteralMap node); |
| 715 E visitTypeOperator(TypeOperator node); | 715 E visitTypeOperator(TypeOperator node); |
| 716 E visitFunctionExpression(FunctionExpression node); | 716 E visitFunctionExpression(FunctionExpression node); |
| 717 E visitFieldInitializer(FieldInitializer node); | 717 E visitFieldInitializer(FieldInitializer node); |
| 718 E visitSuperInitializer(SuperInitializer node); | 718 E visitSuperInitializer(SuperInitializer node); |
| 719 E visitGetField(GetField node); | 719 E visitGetField(GetField node); |
| 720 E visitCreateBox(CreateBox node); | 720 E visitCreateBox(CreateBox node); |
| 721 E visitCreateClosureClass(CreateClosureClass node); | 721 E visitCreateInstance(CreateInstance node); |
| 722 } | 722 } |
| 723 | 723 |
| 724 abstract class ExpressionVisitor1<E, A> { | 724 abstract class ExpressionVisitor1<E, A> { |
| 725 E visitExpression(Expression e, A arg) => e.accept1(this, arg); | 725 E visitExpression(Expression e, A arg) => e.accept1(this, arg); |
| 726 E visitVariable(Variable node, A arg); | 726 E visitVariable(Variable node, A arg); |
| 727 E visitInvokeStatic(InvokeStatic node, A arg); | 727 E visitInvokeStatic(InvokeStatic node, A arg); |
| 728 E visitInvokeMethod(InvokeMethod node, A arg); | 728 E visitInvokeMethod(InvokeMethod node, A arg); |
| 729 E visitInvokeMethodDirectly(InvokeMethodDirectly node, A arg); | 729 E visitInvokeMethodDirectly(InvokeMethodDirectly node, A arg); |
| 730 E visitInvokeConstructor(InvokeConstructor node, A arg); | 730 E visitInvokeConstructor(InvokeConstructor node, A arg); |
| 731 E visitConcatenateStrings(ConcatenateStrings node, A arg); | 731 E visitConcatenateStrings(ConcatenateStrings node, A arg); |
| 732 E visitConstant(Constant node, A arg); | 732 E visitConstant(Constant node, A arg); |
| 733 E visitThis(This node, A arg); | 733 E visitThis(This node, A arg); |
| 734 E visitReifyTypeVar(ReifyTypeVar node, A arg); | 734 E visitReifyTypeVar(ReifyTypeVar node, A arg); |
| 735 E visitConditional(Conditional node, A arg); | 735 E visitConditional(Conditional node, A arg); |
| 736 E visitLogicalOperator(LogicalOperator node, A arg); | 736 E visitLogicalOperator(LogicalOperator node, A arg); |
| 737 E visitNot(Not node, A arg); | 737 E visitNot(Not node, A arg); |
| 738 E visitLiteralList(LiteralList node, A arg); | 738 E visitLiteralList(LiteralList node, A arg); |
| 739 E visitLiteralMap(LiteralMap node, A arg); | 739 E visitLiteralMap(LiteralMap node, A arg); |
| 740 E visitTypeOperator(TypeOperator node, A arg); | 740 E visitTypeOperator(TypeOperator node, A arg); |
| 741 E visitFunctionExpression(FunctionExpression node, A arg); | 741 E visitFunctionExpression(FunctionExpression node, A arg); |
| 742 E visitFieldInitializer(FieldInitializer node, A arg); | 742 E visitFieldInitializer(FieldInitializer node, A arg); |
| 743 E visitSuperInitializer(SuperInitializer node, A arg); | 743 E visitSuperInitializer(SuperInitializer node, A arg); |
| 744 E visitGetField(GetField node, A arg); | 744 E visitGetField(GetField node, A arg); |
| 745 E visitCreateBox(CreateBox node, A arg); | 745 E visitCreateBox(CreateBox node, A arg); |
| 746 E visitCreateClosureClass(CreateClosureClass node, A arg); | 746 E visitCreateInstance(CreateInstance node, A arg); |
| 747 } | 747 } |
| 748 | 748 |
| 749 abstract class StatementVisitor<S> { | 749 abstract class StatementVisitor<S> { |
| 750 S visitStatement(Statement s) => s.accept(this); | 750 S visitStatement(Statement s) => s.accept(this); |
| 751 S visitLabeledStatement(LabeledStatement node); | 751 S visitLabeledStatement(LabeledStatement node); |
| 752 S visitAssign(Assign node); | 752 S visitAssign(Assign node); |
| 753 S visitReturn(Return node); | 753 S visitReturn(Return node); |
| 754 S visitBreak(Break node); | 754 S visitBreak(Break node); |
| 755 S visitContinue(Continue node); | 755 S visitContinue(Continue node); |
| 756 S visitIf(If node); | 756 S visitIf(If node); |
| (...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 916 | 916 |
| 917 visitSetField(SetField node) { | 917 visitSetField(SetField node) { |
| 918 visitExpression(node.object); | 918 visitExpression(node.object); |
| 919 visitExpression(node.value); | 919 visitExpression(node.value); |
| 920 visitStatement(node.next); | 920 visitStatement(node.next); |
| 921 } | 921 } |
| 922 | 922 |
| 923 visitCreateBox(CreateBox node) { | 923 visitCreateBox(CreateBox node) { |
| 924 } | 924 } |
| 925 | 925 |
| 926 visitCreateClosureClass(CreateClosureClass node) { | 926 visitCreateInstance(CreateInstance node) { |
| 927 node.arguments.forEach(visitExpression); | 927 node.arguments.forEach(visitExpression); |
| 928 } | 928 } |
| 929 } | 929 } |
| OLD | NEW |