| 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 '../dart_types.dart' show DartType, GenericType, InterfaceType, TypeVaria
bleType; | 9 import '../dart_types.dart' show DartType, GenericType, InterfaceType, TypeVaria
bleType; |
| 10 import '../elements/elements.dart'; | 10 import '../elements/elements.dart'; |
| (...skipping 855 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 866 Expression object; | 866 Expression object; |
| 867 Element field; | 867 Element field; |
| 868 Expression value; | 868 Expression value; |
| 869 | 869 |
| 870 SetField(this.object, this.field, this.value); | 870 SetField(this.object, this.field, this.value); |
| 871 | 871 |
| 872 accept(ExpressionVisitor visitor) => visitor.visitSetField(this); | 872 accept(ExpressionVisitor visitor) => visitor.visitSetField(this); |
| 873 accept1(ExpressionVisitor1 visitor, arg) => visitor.visitSetField(this, arg); | 873 accept1(ExpressionVisitor1 visitor, arg) => visitor.visitSetField(this, arg); |
| 874 } | 874 } |
| 875 | 875 |
| 876 class GetStatic extends Expression { |
| 877 Element element; |
| 878 SourceInformation sourceInformation; |
| 879 |
| 880 GetStatic(this.element, this.sourceInformation); |
| 881 |
| 882 accept(ExpressionVisitor visitor) => visitor.visitGetStatic(this); |
| 883 accept1(ExpressionVisitor1 visitor, arg) => visitor.visitGetStatic(this, arg); |
| 884 } |
| 885 |
| 886 |
| 887 class SetStatic extends Expression { |
| 888 Element element; |
| 889 Expression value; |
| 890 SourceInformation sourceInformation; |
| 891 |
| 892 SetStatic(this.element, this.value, this.sourceInformation); |
| 893 |
| 894 accept(ExpressionVisitor visitor) => visitor.visitSetStatic(this); |
| 895 accept1(ExpressionVisitor1 visitor, arg) => visitor.visitSetStatic(this, arg); |
| 896 } |
| 897 |
| 876 class ReifyRuntimeType extends Expression implements JsSpecificNode { | 898 class ReifyRuntimeType extends Expression implements JsSpecificNode { |
| 877 Expression value; | 899 Expression value; |
| 878 | 900 |
| 879 ReifyRuntimeType(this.value); | 901 ReifyRuntimeType(this.value); |
| 880 | 902 |
| 881 accept(ExpressionVisitor visitor) { | 903 accept(ExpressionVisitor visitor) { |
| 882 return visitor.visitReifyRuntimeType(this); | 904 return visitor.visitReifyRuntimeType(this); |
| 883 } | 905 } |
| 884 | 906 |
| 885 accept1(ExpressionVisitor1 visitor, arg) { | 907 accept1(ExpressionVisitor1 visitor, arg) { |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 948 E visitThis(This node); | 970 E visitThis(This node); |
| 949 E visitReifyTypeVar(ReifyTypeVar node); | 971 E visitReifyTypeVar(ReifyTypeVar node); |
| 950 E visitConditional(Conditional node); | 972 E visitConditional(Conditional node); |
| 951 E visitLogicalOperator(LogicalOperator node); | 973 E visitLogicalOperator(LogicalOperator node); |
| 952 E visitNot(Not node); | 974 E visitNot(Not node); |
| 953 E visitLiteralList(LiteralList node); | 975 E visitLiteralList(LiteralList node); |
| 954 E visitLiteralMap(LiteralMap node); | 976 E visitLiteralMap(LiteralMap node); |
| 955 E visitTypeOperator(TypeOperator node); | 977 E visitTypeOperator(TypeOperator node); |
| 956 E visitFunctionExpression(FunctionExpression node); | 978 E visitFunctionExpression(FunctionExpression node); |
| 957 E visitGetField(GetField node); | 979 E visitGetField(GetField node); |
| 980 E visitSetField(SetField node); |
| 981 E visitGetStatic(GetStatic node); |
| 982 E visitSetStatic(SetStatic node); |
| 958 E visitCreateBox(CreateBox node); | 983 E visitCreateBox(CreateBox node); |
| 959 E visitCreateInstance(CreateInstance node); | 984 E visitCreateInstance(CreateInstance node); |
| 960 E visitReifyRuntimeType(ReifyRuntimeType node); | 985 E visitReifyRuntimeType(ReifyRuntimeType node); |
| 961 E visitReadTypeVariable(ReadTypeVariable node); | 986 E visitReadTypeVariable(ReadTypeVariable node); |
| 962 E visitTypeExpression(TypeExpression node); | 987 E visitTypeExpression(TypeExpression node); |
| 963 E visitSetField(SetField node); | |
| 964 E visitCreateInvocationMirror(CreateInvocationMirror node); | 988 E visitCreateInvocationMirror(CreateInvocationMirror node); |
| 965 } | 989 } |
| 966 | 990 |
| 967 abstract class ExpressionVisitor1<E, A> { | 991 abstract class ExpressionVisitor1<E, A> { |
| 968 E visitExpression(Expression node, A arg) => node.accept1(this, arg); | 992 E visitExpression(Expression node, A arg) => node.accept1(this, arg); |
| 969 E visitVariableUse(VariableUse node, A arg); | 993 E visitVariableUse(VariableUse node, A arg); |
| 970 E visitAssign(Assign node, A arg); | 994 E visitAssign(Assign node, A arg); |
| 971 E visitInvokeStatic(InvokeStatic node, A arg); | 995 E visitInvokeStatic(InvokeStatic node, A arg); |
| 972 E visitInvokeMethod(InvokeMethod node, A arg); | 996 E visitInvokeMethod(InvokeMethod node, A arg); |
| 973 E visitInvokeMethodDirectly(InvokeMethodDirectly node, A arg); | 997 E visitInvokeMethodDirectly(InvokeMethodDirectly node, A arg); |
| 974 E visitInvokeConstructor(InvokeConstructor node, A arg); | 998 E visitInvokeConstructor(InvokeConstructor node, A arg); |
| 975 E visitConcatenateStrings(ConcatenateStrings node, A arg); | 999 E visitConcatenateStrings(ConcatenateStrings node, A arg); |
| 976 E visitConstant(Constant node, A arg); | 1000 E visitConstant(Constant node, A arg); |
| 977 E visitThis(This node, A arg); | 1001 E visitThis(This node, A arg); |
| 978 E visitReifyTypeVar(ReifyTypeVar node, A arg); | 1002 E visitReifyTypeVar(ReifyTypeVar node, A arg); |
| 979 E visitConditional(Conditional node, A arg); | 1003 E visitConditional(Conditional node, A arg); |
| 980 E visitLogicalOperator(LogicalOperator node, A arg); | 1004 E visitLogicalOperator(LogicalOperator node, A arg); |
| 981 E visitNot(Not node, A arg); | 1005 E visitNot(Not node, A arg); |
| 982 E visitLiteralList(LiteralList node, A arg); | 1006 E visitLiteralList(LiteralList node, A arg); |
| 983 E visitLiteralMap(LiteralMap node, A arg); | 1007 E visitLiteralMap(LiteralMap node, A arg); |
| 984 E visitTypeOperator(TypeOperator node, A arg); | 1008 E visitTypeOperator(TypeOperator node, A arg); |
| 985 E visitFunctionExpression(FunctionExpression node, A arg); | 1009 E visitFunctionExpression(FunctionExpression node, A arg); |
| 986 E visitGetField(GetField node, A arg); | 1010 E visitGetField(GetField node, A arg); |
| 1011 E visitSetField(SetField node, A arg); |
| 1012 E visitGetStatic(GetStatic node, A arg); |
| 1013 E visitSetStatic(SetStatic node, A arg); |
| 987 E visitCreateBox(CreateBox node, A arg); | 1014 E visitCreateBox(CreateBox node, A arg); |
| 988 E visitCreateInstance(CreateInstance node, A arg); | 1015 E visitCreateInstance(CreateInstance node, A arg); |
| 989 E visitReifyRuntimeType(ReifyRuntimeType node, A arg); | 1016 E visitReifyRuntimeType(ReifyRuntimeType node, A arg); |
| 990 E visitReadTypeVariable(ReadTypeVariable node, A arg); | 1017 E visitReadTypeVariable(ReadTypeVariable node, A arg); |
| 991 E visitTypeExpression(TypeExpression node, A arg); | 1018 E visitTypeExpression(TypeExpression node, A arg); |
| 992 E visitSetField(SetField node, A arg); | |
| 993 E visitCreateInvocationMirror(CreateInvocationMirror node, A arg); | 1019 E visitCreateInvocationMirror(CreateInvocationMirror node, A arg); |
| 994 } | 1020 } |
| 995 | 1021 |
| 996 abstract class StatementVisitor<S> { | 1022 abstract class StatementVisitor<S> { |
| 997 S visitStatement(Statement node) => node.accept(this); | 1023 S visitStatement(Statement node) => node.accept(this); |
| 998 S visitLabeledStatement(LabeledStatement node); | 1024 S visitLabeledStatement(LabeledStatement node); |
| 999 S visitReturn(Return node); | 1025 S visitReturn(Return node); |
| 1000 S visitThrow(Throw node); | 1026 S visitThrow(Throw node); |
| 1001 S visitRethrow(Rethrow node); | 1027 S visitRethrow(Rethrow node); |
| 1002 S visitBreak(Break node); | 1028 S visitBreak(Break node); |
| (...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1190 | 1216 |
| 1191 visitGetField(GetField node) { | 1217 visitGetField(GetField node) { |
| 1192 visitExpression(node.object); | 1218 visitExpression(node.object); |
| 1193 } | 1219 } |
| 1194 | 1220 |
| 1195 visitSetField(SetField node) { | 1221 visitSetField(SetField node) { |
| 1196 visitExpression(node.object); | 1222 visitExpression(node.object); |
| 1197 visitExpression(node.value); | 1223 visitExpression(node.value); |
| 1198 } | 1224 } |
| 1199 | 1225 |
| 1226 visitGetStatic(GetStatic node) { |
| 1227 } |
| 1228 |
| 1229 visitSetStatic(SetStatic node) { |
| 1230 visitExpression(node.value); |
| 1231 } |
| 1232 |
| 1200 visitCreateBox(CreateBox node) { | 1233 visitCreateBox(CreateBox node) { |
| 1201 } | 1234 } |
| 1202 | 1235 |
| 1203 visitCreateInstance(CreateInstance node) { | 1236 visitCreateInstance(CreateInstance node) { |
| 1204 node.arguments.forEach(visitExpression); | 1237 node.arguments.forEach(visitExpression); |
| 1205 node.typeInformation.forEach(visitExpression); | 1238 node.typeInformation.forEach(visitExpression); |
| 1206 } | 1239 } |
| 1207 | 1240 |
| 1208 visitReifyRuntimeType(ReifyRuntimeType node) { | 1241 visitReifyRuntimeType(ReifyRuntimeType node) { |
| 1209 visitExpression(node.value); | 1242 visitExpression(node.value); |
| (...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1388 node.object = visitExpression(node.object); | 1421 node.object = visitExpression(node.object); |
| 1389 return node; | 1422 return node; |
| 1390 } | 1423 } |
| 1391 | 1424 |
| 1392 visitSetField(SetField node) { | 1425 visitSetField(SetField node) { |
| 1393 node.object = visitExpression(node.object); | 1426 node.object = visitExpression(node.object); |
| 1394 node.value = visitExpression(node.value); | 1427 node.value = visitExpression(node.value); |
| 1395 return node; | 1428 return node; |
| 1396 } | 1429 } |
| 1397 | 1430 |
| 1431 visitGetStatic(GetStatic node) => node; |
| 1432 |
| 1433 visitSetStatic(SetStatic node) { |
| 1434 node.value = visitExpression(node.value); |
| 1435 return node; |
| 1436 } |
| 1437 |
| 1398 visitCreateBox(CreateBox node) => node; | 1438 visitCreateBox(CreateBox node) => node; |
| 1399 | 1439 |
| 1400 visitCreateInstance(CreateInstance node) { | 1440 visitCreateInstance(CreateInstance node) { |
| 1401 _replaceExpressions(node.arguments); | 1441 _replaceExpressions(node.arguments); |
| 1402 return node; | 1442 return node; |
| 1403 } | 1443 } |
| 1404 | 1444 |
| 1405 visitReifyRuntimeType(ReifyRuntimeType node) { | 1445 visitReifyRuntimeType(ReifyRuntimeType node) { |
| 1406 node.value = visitExpression(node.value); | 1446 node.value = visitExpression(node.value); |
| 1407 return node; | 1447 return node; |
| 1408 } | 1448 } |
| 1409 | 1449 |
| 1410 visitReadTypeVariable(ReadTypeVariable node) { | 1450 visitReadTypeVariable(ReadTypeVariable node) { |
| 1411 node.target = visitExpression(node.target); | 1451 node.target = visitExpression(node.target); |
| 1412 return node; | 1452 return node; |
| 1413 } | 1453 } |
| 1414 | 1454 |
| 1415 visitTypeExpression(TypeExpression node) { | 1455 visitTypeExpression(TypeExpression node) { |
| 1416 _replaceExpressions(node.arguments); | 1456 _replaceExpressions(node.arguments); |
| 1417 return node; | 1457 return node; |
| 1418 } | 1458 } |
| 1419 | 1459 |
| 1420 visitCreateInvocationMirror(CreateInvocationMirror node) { | 1460 visitCreateInvocationMirror(CreateInvocationMirror node) { |
| 1421 _replaceExpressions(node.arguments); | 1461 _replaceExpressions(node.arguments); |
| 1422 return node; | 1462 return node; |
| 1423 } | 1463 } |
| 1424 } | 1464 } |
| OLD | NEW |