Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(99)

Side by Side Diff: pkg/compiler/lib/src/tree_ir/tree_ir_nodes.dart

Issue 1130813002: dart2js cps: Handle error cases. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Whitelist unused API due to semantic visitor being WIP Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 884 matching lines...) Expand 10 before | Expand all | Expand 10 after
895 895
896 accept(ExpressionVisitor visitor) { 896 accept(ExpressionVisitor visitor) {
897 return visitor.visitReadTypeVariable(this); 897 return visitor.visitReadTypeVariable(this);
898 } 898 }
899 899
900 accept1(ExpressionVisitor1 visitor, arg) { 900 accept1(ExpressionVisitor1 visitor, arg) {
901 return visitor.visitReadTypeVariable(this, arg); 901 return visitor.visitReadTypeVariable(this, arg);
902 } 902 }
903 } 903 }
904 904
905 class CreateInvocationMirror extends Expression implements JsSpecificNode {
906 final Selector selector;
907 final List<Expression> arguments;
908
909 CreateInvocationMirror(this.selector, this.arguments);
910
911 accept(ExpressionVisitor visitor) {
912 return visitor.visitCreateInvocationMirror(this);
913 }
914
915 accept1(ExpressionVisitor1 visitor, arg) {
916 return visitor.visitCreateInvocationMirror(this, arg);
917 }
918 }
919
905 /// Denotes the internal representation of [dartType], where all type variables 920 /// Denotes the internal representation of [dartType], where all type variables
906 /// are replaced by the values in [arguments]. 921 /// are replaced by the values in [arguments].
907 /// (See documentation on the TypeExpression CPS node for more details.) 922 /// (See documentation on the TypeExpression CPS node for more details.)
908 class TypeExpression extends Expression { 923 class TypeExpression extends Expression {
909 final DartType dartType; 924 final DartType dartType;
910 final List<Expression> arguments; 925 final List<Expression> arguments;
911 926
912 TypeExpression(this.dartType, this.arguments); 927 TypeExpression(this.dartType, this.arguments);
913 928
914 accept(ExpressionVisitor visitor) { 929 accept(ExpressionVisitor visitor) {
(...skipping 24 matching lines...) Expand all
939 E visitLiteralMap(LiteralMap node); 954 E visitLiteralMap(LiteralMap node);
940 E visitTypeOperator(TypeOperator node); 955 E visitTypeOperator(TypeOperator node);
941 E visitFunctionExpression(FunctionExpression node); 956 E visitFunctionExpression(FunctionExpression node);
942 E visitGetField(GetField node); 957 E visitGetField(GetField node);
943 E visitCreateBox(CreateBox node); 958 E visitCreateBox(CreateBox node);
944 E visitCreateInstance(CreateInstance node); 959 E visitCreateInstance(CreateInstance node);
945 E visitReifyRuntimeType(ReifyRuntimeType node); 960 E visitReifyRuntimeType(ReifyRuntimeType node);
946 E visitReadTypeVariable(ReadTypeVariable node); 961 E visitReadTypeVariable(ReadTypeVariable node);
947 E visitTypeExpression(TypeExpression node); 962 E visitTypeExpression(TypeExpression node);
948 E visitSetField(SetField node); 963 E visitSetField(SetField node);
964 E visitCreateInvocationMirror(CreateInvocationMirror node);
949 } 965 }
950 966
951 abstract class ExpressionVisitor1<E, A> { 967 abstract class ExpressionVisitor1<E, A> {
952 E visitExpression(Expression node, A arg) => node.accept1(this, arg); 968 E visitExpression(Expression node, A arg) => node.accept1(this, arg);
953 E visitVariableUse(VariableUse node, A arg); 969 E visitVariableUse(VariableUse node, A arg);
954 E visitAssign(Assign node, A arg); 970 E visitAssign(Assign node, A arg);
955 E visitInvokeStatic(InvokeStatic node, A arg); 971 E visitInvokeStatic(InvokeStatic node, A arg);
956 E visitInvokeMethod(InvokeMethod node, A arg); 972 E visitInvokeMethod(InvokeMethod node, A arg);
957 E visitInvokeMethodDirectly(InvokeMethodDirectly node, A arg); 973 E visitInvokeMethodDirectly(InvokeMethodDirectly node, A arg);
958 E visitInvokeConstructor(InvokeConstructor node, A arg); 974 E visitInvokeConstructor(InvokeConstructor node, A arg);
959 E visitConcatenateStrings(ConcatenateStrings node, A arg); 975 E visitConcatenateStrings(ConcatenateStrings node, A arg);
960 E visitConstant(Constant node, A arg); 976 E visitConstant(Constant node, A arg);
961 E visitThis(This node, A arg); 977 E visitThis(This node, A arg);
962 E visitReifyTypeVar(ReifyTypeVar node, A arg); 978 E visitReifyTypeVar(ReifyTypeVar node, A arg);
963 E visitConditional(Conditional node, A arg); 979 E visitConditional(Conditional node, A arg);
964 E visitLogicalOperator(LogicalOperator node, A arg); 980 E visitLogicalOperator(LogicalOperator node, A arg);
965 E visitNot(Not node, A arg); 981 E visitNot(Not node, A arg);
966 E visitLiteralList(LiteralList node, A arg); 982 E visitLiteralList(LiteralList node, A arg);
967 E visitLiteralMap(LiteralMap node, A arg); 983 E visitLiteralMap(LiteralMap node, A arg);
968 E visitTypeOperator(TypeOperator node, A arg); 984 E visitTypeOperator(TypeOperator node, A arg);
969 E visitFunctionExpression(FunctionExpression node, A arg); 985 E visitFunctionExpression(FunctionExpression node, A arg);
970 E visitGetField(GetField node, A arg); 986 E visitGetField(GetField node, A arg);
971 E visitCreateBox(CreateBox node, A arg); 987 E visitCreateBox(CreateBox node, A arg);
972 E visitCreateInstance(CreateInstance node, A arg); 988 E visitCreateInstance(CreateInstance node, A arg);
973 E visitReifyRuntimeType(ReifyRuntimeType node, A arg); 989 E visitReifyRuntimeType(ReifyRuntimeType node, A arg);
974 E visitReadTypeVariable(ReadTypeVariable node, A arg); 990 E visitReadTypeVariable(ReadTypeVariable node, A arg);
975 E visitTypeExpression(TypeExpression node, A arg); 991 E visitTypeExpression(TypeExpression node, A arg);
976 E visitSetField(SetField node, A arg); 992 E visitSetField(SetField node, A arg);
993 E visitCreateInvocationMirror(CreateInvocationMirror node, A arg);
977 } 994 }
978 995
979 abstract class StatementVisitor<S> { 996 abstract class StatementVisitor<S> {
980 S visitStatement(Statement node) => node.accept(this); 997 S visitStatement(Statement node) => node.accept(this);
981 S visitLabeledStatement(LabeledStatement node); 998 S visitLabeledStatement(LabeledStatement node);
982 S visitReturn(Return node); 999 S visitReturn(Return node);
983 S visitThrow(Throw node); 1000 S visitThrow(Throw node);
984 S visitRethrow(Rethrow node); 1001 S visitRethrow(Rethrow node);
985 S visitBreak(Break node); 1002 S visitBreak(Break node);
986 S visitContinue(Continue node); 1003 S visitContinue(Continue node);
(...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after
1192 visitExpression(node.value); 1209 visitExpression(node.value);
1193 } 1210 }
1194 1211
1195 visitReadTypeVariable(ReadTypeVariable node) { 1212 visitReadTypeVariable(ReadTypeVariable node) {
1196 visitExpression(node.target); 1213 visitExpression(node.target);
1197 } 1214 }
1198 1215
1199 visitTypeExpression(TypeExpression node) { 1216 visitTypeExpression(TypeExpression node) {
1200 node.arguments.forEach(visitExpression); 1217 node.arguments.forEach(visitExpression);
1201 } 1218 }
1219
1220 visitCreateInvocationMirror(CreateInvocationMirror node) {
1221 node.arguments.forEach(visitExpression);
1222 }
1202 } 1223 }
1203 1224
1204 abstract class Transformer implements ExpressionVisitor<Expression>, 1225 abstract class Transformer implements ExpressionVisitor<Expression>,
1205 StatementVisitor<Statement> { 1226 StatementVisitor<Statement> {
1206 Expression visitExpression(Expression e) => e.accept(this); 1227 Expression visitExpression(Expression e) => e.accept(this);
1207 Statement visitStatement(Statement s) => s.accept(this); 1228 Statement visitStatement(Statement s) => s.accept(this);
1208 } 1229 }
1209 1230
1210 class RecursiveTransformer extends Transformer { 1231 class RecursiveTransformer extends Transformer {
1211 void visitInnerFunction(FunctionDefinition node) { 1232 void visitInnerFunction(FunctionDefinition node) {
(...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after
1388 1409
1389 visitReadTypeVariable(ReadTypeVariable node) { 1410 visitReadTypeVariable(ReadTypeVariable node) {
1390 node.target = visitExpression(node.target); 1411 node.target = visitExpression(node.target);
1391 return node; 1412 return node;
1392 } 1413 }
1393 1414
1394 visitTypeExpression(TypeExpression node) { 1415 visitTypeExpression(TypeExpression node) {
1395 _replaceExpressions(node.arguments); 1416 _replaceExpressions(node.arguments);
1396 return node; 1417 return node;
1397 } 1418 }
1419
1420 visitCreateInvocationMirror(CreateInvocationMirror node) {
1421 _replaceExpressions(node.arguments);
1422 return node;
1423 }
1398 } 1424 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/tree_ir/tree_ir_builder.dart ('k') | pkg/compiler/lib/src/tree_ir/tree_ir_tracer.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698