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.parser.member_listener; | 5 library dart2js.parser.member_listener; |
6 | 6 |
7 import '../common.dart'; | 7 import '../common.dart'; |
8 import '../elements/elements.dart' show Element, ElementKind, Elements; | 8 import '../elements/elements.dart' show Element, ElementKind, Elements; |
9 import '../elements/modelx.dart' | 9 import '../elements/modelx.dart' |
10 show ClassElementX, ElementX, FieldElementX, VariableList; | 10 show ClassElementX, ElementX, FieldElementX, VariableList; |
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
126 void buildFieldElement(Identifier name, VariableList fields) { | 126 void buildFieldElement(Identifier name, VariableList fields) { |
127 Element element = new FieldElementX(name, enclosingClass, fields); | 127 Element element = new FieldElementX(name, enclosingClass, fields); |
128 addMember(element); | 128 addMember(element); |
129 } | 129 } |
130 | 130 |
131 buildFieldElements(modifiers, variableDefinitions.definitions, | 131 buildFieldElements(modifiers, variableDefinitions.definitions, |
132 enclosingClass, buildFieldElement, beginToken, endToken, hasParseError); | 132 enclosingClass, buildFieldElement, beginToken, endToken, hasParseError); |
133 } | 133 } |
134 | 134 |
135 @override | 135 @override |
136 void endFieldInitializer(Token assignmentOperator) { | 136 void endFieldInitializer(Token assignmentOperator, Token token) { |
137 pushNode(null); // Super expects an expression, but | 137 pushNode(null); // Super expects an expression, but |
138 // ClassElementParser just skips expressions. | 138 // ClassElementParser just skips expressions. |
139 super.endFieldInitializer(assignmentOperator); | 139 super.endFieldInitializer(assignmentOperator, token); |
140 } | 140 } |
141 | 141 |
142 @override | 142 @override |
143 void endInitializers(int count, Token beginToken, Token endToken) { | 143 void endInitializers(int count, Token beginToken, Token endToken) { |
144 pushNode(null); | 144 pushNode(null); |
145 } | 145 } |
146 | 146 |
147 void addMetadata(ElementX memberElement) { | 147 void addMetadata(ElementX memberElement) { |
148 memberElement.metadata = metadata.toList(); | 148 memberElement.metadata = metadata.toList(); |
149 } | 149 } |
150 | 150 |
151 void addMember(ElementX memberElement) { | 151 void addMember(ElementX memberElement) { |
152 addMetadata(memberElement); | 152 addMetadata(memberElement); |
153 enclosingClass.addMember(memberElement, reporter); | 153 enclosingClass.addMember(memberElement, reporter); |
154 } | 154 } |
155 | 155 |
156 @override | 156 @override |
157 void endMetadata(Token beginToken, Token periodBeforeName, Token endToken) { | 157 void endMetadata(Token beginToken, Token periodBeforeName, Token endToken) { |
158 super.endMetadata(beginToken, periodBeforeName, endToken); | 158 super.endMetadata(beginToken, periodBeforeName, endToken); |
159 // TODO(paulberry,ahe): type variable metadata should not be ignored. See | 159 // TODO(paulberry,ahe): type variable metadata should not be ignored. See |
160 // dartbug.com/5841. | 160 // dartbug.com/5841. |
161 if (!inTypeVariable) { | 161 if (!inTypeVariable) { |
162 pushMetadata(new PartialMetadataAnnotation(beginToken, endToken)); | 162 pushMetadata(new PartialMetadataAnnotation(beginToken, endToken)); |
163 } | 163 } |
164 } | 164 } |
165 } | 165 } |
OLD | NEW |