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

Side by Side Diff: dart/lib/compiler/implementation/scanner/class_element_parser.dart

Issue 11227007: Unify parsing of constructor references. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 8 years, 2 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) 2011, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2011, 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 class ClassElementParser extends PartialParser { 5 class ClassElementParser extends PartialParser {
6 ClassElementParser(Listener listener) : super(listener); 6 ClassElementParser(Listener listener) : super(listener);
7 7
8 Token parseClassBody(Token token) => fullParseClassBody(token); 8 Token parseClassBody(Token token) => fullParseClassBody(token);
9 } 9 }
10 10
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
123 } else if (getOrSet != null) { 123 } else if (getOrSet != null) {
124 kind = (identical(getOrSet.stringValue, 'get')) 124 kind = (identical(getOrSet.stringValue, 'get'))
125 ? ElementKind.GETTER : ElementKind.SETTER; 125 ? ElementKind.GETTER : ElementKind.SETTER;
126 } 126 }
127 Element memberElement = 127 Element memberElement =
128 new PartialFunctionElement(name, beginToken, getOrSet, endToken, 128 new PartialFunctionElement(name, beginToken, getOrSet, endToken,
129 kind, method.modifiers, enclosingElement); 129 kind, method.modifiers, enclosingElement);
130 addMember(memberElement); 130 addMember(memberElement);
131 } 131 }
132 132
133 void endFactoryMethod(Token factoryKeyword, Token periodBeforeName, 133 void endFactoryMethod(Token beginToken, Token endToken) {
134 Token endToken) { 134 super.endFactoryMethod(beginToken, endToken);
135 super.endFactoryMethod(factoryKeyword, periodBeforeName, endToken);
136 FunctionExpression method = popNode(); 135 FunctionExpression method = popNode();
137 pushNode(null); 136 pushNode(null);
138 SourceString name = getMethodNameHack(method.name); 137 SourceString name = getMethodNameHack(method.name);
139 ElementKind kind = ElementKind.FUNCTION; 138 ElementKind kind = ElementKind.FUNCTION;
140 Element memberElement = 139 Element memberElement =
141 new PartialFunctionElement(name, factoryKeyword, null, endToken, 140 new PartialFunctionElement(name, beginToken, null, endToken,
142 kind, method.modifiers, enclosingElement); 141 kind, method.modifiers, enclosingElement);
143 addMember(memberElement); 142 addMember(memberElement);
144 } 143 }
145 144
146 void endFields(int count, Token beginToken, Token endToken) { 145 void endFields(int count, Token beginToken, Token endToken) {
147 super.endFields(count, beginToken, endToken); 146 super.endFields(count, beginToken, endToken);
148 VariableDefinitions variableDefinitions = popNode(); 147 VariableDefinitions variableDefinitions = popNode();
149 Modifiers modifiers = variableDefinitions.modifiers; 148 Modifiers modifiers = variableDefinitions.modifiers;
150 pushNode(null); 149 pushNode(null);
151 void buildFieldElement(SourceString name, Element fields) { 150 void buildFieldElement(SourceString name, Element fields) {
(...skipping 17 matching lines...) Expand all
169 } 168 }
170 169
171 void addMember(Element memberElement) { 170 void addMember(Element memberElement) {
172 for (Link link = metadata; !link.isEmpty(); link = link.tail) { 171 for (Link link = metadata; !link.isEmpty(); link = link.tail) {
173 memberElement.addMetadata(link.head); 172 memberElement.addMetadata(link.head);
174 } 173 }
175 metadata = const Link<MetadataAnnotation>(); 174 metadata = const Link<MetadataAnnotation>();
176 enclosingElement.addMember(memberElement, listener); 175 enclosingElement.addMember(memberElement, listener);
177 } 176 }
178 } 177 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698