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 backend_ast_emitter; | 5 library backend_ast_emitter; |
6 | 6 |
7 import '../tree_ir/tree_ir_nodes.dart' as tree; | 7 import '../tree_ir/tree_ir_nodes.dart' as tree; |
8 import 'backend_ast_nodes.dart'; | 8 import 'backend_ast_nodes.dart'; |
9 import '../constants/expressions.dart'; | 9 import '../constants/expressions.dart'; |
10 import '../constants/values.dart'; | 10 import '../constants/values.dart'; |
(...skipping 951 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
962 Initializer visitSuperInitializer(tree.SuperInitializer node, | 962 Initializer visitSuperInitializer(tree.SuperInitializer node, |
963 BuilderContext<Statement> context) { | 963 BuilderContext<Statement> context) { |
964 List<Argument> arguments = node.arguments.map((tree.Statement argument) { | 964 List<Argument> arguments = node.arguments.map((tree.Statement argument) { |
965 return ensureExpression(buildInInitializerContext(argument, context)); | 965 return ensureExpression(buildInInitializerContext(argument, context)); |
966 }).toList(); | 966 }).toList(); |
967 return new SuperInitializer(node.target, | 967 return new SuperInitializer(node.target, |
968 emitArguments(arguments, node.selector)); | 968 emitArguments(arguments, node.selector)); |
969 } | 969 } |
970 | 970 |
971 @override | 971 @override |
| 972 Expression visitGetStatic(tree.GetStatic node, |
| 973 BuilderContext<Statement> context) { |
| 974 return new Identifier(node.element.name)..element = node.element; |
| 975 } |
| 976 |
| 977 @override |
| 978 Expression visitSetStatic(tree.SetStatic node, |
| 979 BuilderContext<Statement> context) { |
| 980 Expression target = |
| 981 new Identifier(node.element.name)..element = node.element; |
| 982 Expression value = visitExpression(node.value, context); |
| 983 return makeAssignment(target, value); |
| 984 } |
| 985 |
| 986 @override |
972 Expression visitTypeExpression(tree.TypeExpression node, arg) { | 987 Expression visitTypeExpression(tree.TypeExpression node, arg) { |
973 throw '$node not supported by dart backend'; | 988 throw '$node not supported by dart backend'; |
974 } | 989 } |
975 | 990 |
976 @override | 991 @override |
977 visitGetField(tree.GetField node, arg) => errorUnsupportedNode(node); | 992 visitGetField(tree.GetField node, arg) => errorUnsupportedNode(node); |
978 | 993 |
979 @override | 994 @override |
980 visitSetField(tree.SetField node, arg) => errorUnsupportedNode(node); | 995 visitSetField(tree.SetField node, arg) => errorUnsupportedNode(node); |
981 | 996 |
(...skipping 445 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1427 : super(name, ElementKind.VARIABLE, enclosingElement, variables, null); | 1442 : super(name, ElementKind.VARIABLE, enclosingElement, variables, null); |
1428 | 1443 |
1429 ExecutableElement get executableContext => enclosingElement; | 1444 ExecutableElement get executableContext => enclosingElement; |
1430 | 1445 |
1431 ExecutableElement get memberContext => executableContext.memberContext; | 1446 ExecutableElement get memberContext => executableContext.memberContext; |
1432 | 1447 |
1433 bool get isLocal => true; | 1448 bool get isLocal => true; |
1434 | 1449 |
1435 LibraryElement get implementationLibrary => enclosingElement.library; | 1450 LibraryElement get implementationLibrary => enclosingElement.library; |
1436 } | 1451 } |
OLD | NEW |