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

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: Add asRaw from other CL Created 8 years, 1 month 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 part of scanner; 5 part of scanner;
6 6
7 class ClassElementParser extends PartialParser { 7 class ClassElementParser extends PartialParser {
8 ClassElementParser(Listener listener) : super(listener); 8 ClassElementParser(Listener listener) : super(listener);
9 9
10 Token parseClassBody(Token token) => fullParseClassBody(token); 10 Token parseClassBody(Token token) => fullParseClassBody(token);
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
125 } else if (getOrSet != null) { 125 } else if (getOrSet != null) {
126 kind = (identical(getOrSet.stringValue, 'get')) 126 kind = (identical(getOrSet.stringValue, 'get'))
127 ? ElementKind.GETTER : ElementKind.SETTER; 127 ? ElementKind.GETTER : ElementKind.SETTER;
128 } 128 }
129 Element memberElement = 129 Element memberElement =
130 new PartialFunctionElement(name, beginToken, getOrSet, endToken, 130 new PartialFunctionElement(name, beginToken, getOrSet, endToken,
131 kind, method.modifiers, enclosingElement); 131 kind, method.modifiers, enclosingElement);
132 addMember(memberElement); 132 addMember(memberElement);
133 } 133 }
134 134
135 void endFactoryMethod(Token factoryKeyword, Token periodBeforeName, 135 void endFactoryMethod(Token beginToken, Token endToken) {
136 Token endToken) { 136 super.endFactoryMethod(beginToken, endToken);
137 super.endFactoryMethod(factoryKeyword, periodBeforeName, endToken);
138 FunctionExpression method = popNode(); 137 FunctionExpression method = popNode();
139 pushNode(null); 138 pushNode(null);
140 SourceString name = getMethodNameHack(method.name); 139 SourceString name = getMethodNameHack(method.name);
141 ElementKind kind = ElementKind.FUNCTION; 140 ElementKind kind = ElementKind.FUNCTION;
142 Element memberElement = 141 Element memberElement =
143 new PartialFunctionElement(name, factoryKeyword, null, endToken, 142 new PartialFunctionElement(name, beginToken, null, endToken,
144 kind, method.modifiers, enclosingElement); 143 kind, method.modifiers, enclosingElement);
145 addMember(memberElement); 144 addMember(memberElement);
146 } 145 }
147 146
148 void endFields(int count, Token beginToken, Token endToken) { 147 void endFields(int count, Token beginToken, Token endToken) {
149 super.endFields(count, beginToken, endToken); 148 super.endFields(count, beginToken, endToken);
150 VariableDefinitions variableDefinitions = popNode(); 149 VariableDefinitions variableDefinitions = popNode();
151 Modifiers modifiers = variableDefinitions.modifiers; 150 Modifiers modifiers = variableDefinitions.modifiers;
152 pushNode(null); 151 pushNode(null);
153 void buildFieldElement(SourceString name, Element fields) { 152 void buildFieldElement(SourceString name, Element fields) {
(...skipping 17 matching lines...) Expand all
171 } 170 }
172 171
173 void addMember(Element memberElement) { 172 void addMember(Element memberElement) {
174 for (Link link = metadata; !link.isEmpty; link = link.tail) { 173 for (Link link = metadata; !link.isEmpty; link = link.tail) {
175 memberElement.addMetadata(link.head); 174 memberElement.addMetadata(link.head);
176 } 175 }
177 metadata = const Link<MetadataAnnotation>(); 176 metadata = const Link<MetadataAnnotation>();
178 enclosingElement.addMember(memberElement, listener); 177 enclosingElement.addMember(memberElement, listener);
179 } 178 }
180 } 179 }
OLDNEW
« no previous file with comments | « dart/lib/compiler/implementation/resolution/members.dart ('k') | dart/lib/compiler/implementation/scanner/listener.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698