| OLD | NEW |
| 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, 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 dart2js.resolution.variables; | 5 library dart2js.resolution.variables; |
| 6 | 6 |
| 7 import '../compiler.dart' show | 7 import '../compiler.dart' show |
| 8 Compiler; | 8 Compiler; |
| 9 import '../diagnostics/messages.dart' show | 9 import '../diagnostics/messages.dart' show |
| 10 MessageKind; | 10 MessageKind; |
| (...skipping 28 matching lines...) Expand all Loading... |
| 39 ResolutionRegistry get registry => resolver.registry; | 39 ResolutionRegistry get registry => resolver.registry; |
| 40 | 40 |
| 41 Identifier visitSendSet(SendSet node) { | 41 Identifier visitSendSet(SendSet node) { |
| 42 assert(node.arguments.tail.isEmpty); // Sanity check | 42 assert(node.arguments.tail.isEmpty); // Sanity check |
| 43 Identifier identifier = node.selector; | 43 Identifier identifier = node.selector; |
| 44 String name = identifier.source; | 44 String name = identifier.source; |
| 45 VariableDefinitionScope scope = | 45 VariableDefinitionScope scope = |
| 46 new VariableDefinitionScope(resolver.scope, name); | 46 new VariableDefinitionScope(resolver.scope, name); |
| 47 resolver.visitIn(node.arguments.head, scope); | 47 resolver.visitIn(node.arguments.head, scope); |
| 48 if (scope.variableReferencedInInitializer) { | 48 if (scope.variableReferencedInInitializer) { |
| 49 compiler.reportError( | 49 compiler.reportErrorMessage( |
| 50 identifier, MessageKind.REFERENCE_IN_INITIALIZATION, | 50 identifier, MessageKind.REFERENCE_IN_INITIALIZATION, |
| 51 {'variableName': name}); | 51 {'variableName': name}); |
| 52 } | 52 } |
| 53 return identifier; | 53 return identifier; |
| 54 } | 54 } |
| 55 | 55 |
| 56 Identifier visitIdentifier(Identifier node) { | 56 Identifier visitIdentifier(Identifier node) { |
| 57 // The variable is initialized to null. | 57 // The variable is initialized to null. |
| 58 registry.registerInstantiatedClass(compiler.nullClass); | 58 registry.registerInstantiatedClass(compiler.nullClass); |
| 59 if (definitions.modifiers.isConst) { | 59 if (definitions.modifiers.isConst) { |
| 60 compiler.reportError(node, MessageKind.CONST_WITHOUT_INITIALIZER); | 60 compiler.reportErrorMessage( |
| 61 node, MessageKind.CONST_WITHOUT_INITIALIZER); |
| 61 } | 62 } |
| 62 if (definitions.modifiers.isFinal && | 63 if (definitions.modifiers.isFinal && |
| 63 !resolver.allowFinalWithoutInitializer) { | 64 !resolver.allowFinalWithoutInitializer) { |
| 64 compiler.reportError(node, MessageKind.FINAL_WITHOUT_INITIALIZER); | 65 compiler.reportErrorMessage( |
| 66 node, MessageKind.FINAL_WITHOUT_INITIALIZER); |
| 65 } | 67 } |
| 66 return node; | 68 return node; |
| 67 } | 69 } |
| 68 | 70 |
| 69 visitNodeList(NodeList node) { | 71 visitNodeList(NodeList node) { |
| 70 for (Link<Node> link = node.nodes; !link.isEmpty; link = link.tail) { | 72 for (Link<Node> link = node.nodes; !link.isEmpty; link = link.tail) { |
| 71 Identifier name = visit(link.head); | 73 Identifier name = visit(link.head); |
| 72 LocalVariableElementX element = new LocalVariableElementX( | 74 LocalVariableElementX element = new LocalVariableElementX( |
| 73 name.source, resolver.enclosingElement, | 75 name.source, resolver.enclosingElement, |
| 74 variables, name.token); | 76 variables, name.token); |
| 75 resolver.defineLocalVariable(link.head, element); | 77 resolver.defineLocalVariable(link.head, element); |
| 76 resolver.addToScope(element); | 78 resolver.addToScope(element); |
| 77 if (definitions.modifiers.isConst) { | 79 if (definitions.modifiers.isConst) { |
| 78 compiler.enqueuer.resolution.addDeferredAction(element, () { | 80 compiler.enqueuer.resolution.addDeferredAction(element, () { |
| 79 element.constant = | 81 element.constant = |
| 80 compiler.resolver.constantCompiler.compileConstant(element); | 82 compiler.resolver.constantCompiler.compileConstant(element); |
| 81 }); | 83 }); |
| 82 } | 84 } |
| 83 } | 85 } |
| 84 } | 86 } |
| 85 } | 87 } |
| OLD | NEW |