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

Unified Diff: pkg/fasta/lib/src/source/outline_builder.dart

Issue 2652663005: Handle field initializers correctly. (Closed)
Patch Set: Created 3 years, 11 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « pkg/fasta/lib/src/source/diet_listener.dart ('k') | pkg/fasta/lib/src/source/stack_listener.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/fasta/lib/src/source/outline_builder.dart
diff --git a/pkg/fasta/lib/src/source/outline_builder.dart b/pkg/fasta/lib/src/source/outline_builder.dart
index 45beda7a1fe7fdbe43e4e0b15133c985b25f6f31..be857fe49ed123390b53b23b19596c7f79a0cdd6 100644
--- a/pkg/fasta/lib/src/source/outline_builder.dart
+++ b/pkg/fasta/lib/src/source/outline_builder.dart
@@ -65,8 +65,10 @@ class OutlineBuilder extends UnhandledListener {
OutlineBuilder(this.library);
+ @override
Uri get uri => library.uri;
+ @override
void endMetadata(Token beginToken, Token periodBeforeName, Token endToken) {
debugEvent("Metadata");
List arguments = pop();
@@ -83,23 +85,27 @@ class OutlineBuilder extends UnhandledListener {
}
}
+ @override
void endHide(Token hideKeyword) {
debugEvent("Hide");
List<String> names = pop();
push(new Combinator.hide(names));
}
+ @override
void endShow(Token showKeyword) {
debugEvent("Show");
List<String> names = pop();
push(new Combinator.show(names));
}
+ @override
void endCombinators(int count) {
debugEvent("Combinators");
push(popList(count) ?? NullValue.Combinators);
}
+ @override
void endExport(Token exportKeyword, Token semicolon) {
debugEvent("Export");
List<Combinator> combinators = pop();
@@ -110,6 +116,7 @@ class OutlineBuilder extends UnhandledListener {
checkEmpty();
}
+ @override
void endImport(Token importKeyword, Token deferredKeyword, Token asKeyword,
Token semicolon) {
debugEvent("endImport");
@@ -123,6 +130,7 @@ class OutlineBuilder extends UnhandledListener {
checkEmpty();
}
+ @override
void endPart(Token partKeyword, Token semicolon) {
debugEvent("Part");
String uri = pop();
@@ -131,16 +139,19 @@ class OutlineBuilder extends UnhandledListener {
checkEmpty();
}
+ @override
void handleOperatorName(Token operatorKeyword, Token token) {
debugEvent("OperatorName");
push(token.stringValue);
}
+ @override
void endIdentifierList(int count) {
debugEvent("endIdentifierList");
push(popList(count) ?? NullValue.IdentifierList);
}
+ @override
void handleQualified(Token period) {
debugEvent("handleQualified");
String name = pop();
@@ -148,6 +159,7 @@ class OutlineBuilder extends UnhandledListener {
push("$receiver.$name");
}
+ @override
void endLibraryName(Token libraryKeyword, Token semicolon) {
debugEvent("endLibraryName");
String name = pop();
@@ -156,10 +168,12 @@ class OutlineBuilder extends UnhandledListener {
library.metadata = metadata;
}
+ @override
void beginClassDeclaration(Token token) {
library.beginNestedScope();
}
+ @override
void endClassDeclaration(int interfacesCount, Token beginToken,
Token extendsKeyword, Token implementsKeyword, Token endToken) {
debugEvent("endClassDeclaration");
@@ -181,6 +195,7 @@ class OutlineBuilder extends UnhandledListener {
return internalError("Unhandled: ${token.value}");
}
+ @override
ProcedureBuilder endTopLevelMethod(
Token beginToken, Token getOrSet, Token endToken) {
debugEvent("endTopLevelMethod");
@@ -198,16 +213,19 @@ class OutlineBuilder extends UnhandledListener {
typeVariables, formals, asyncModifier, computeProcedureKind(getOrSet));
}
+ @override
void handleNoFunctionBody(Token token) {
debugEvent("NoFunctionBody");
push(MethodBody.Abstract);
}
+ @override
void handleFunctionBodySkipped(Token token) {
debugEvent("handleFunctionBodySkipped");
push(MethodBody.Regular);
}
+ @override
void endMethod(Token getOrSet, Token beginToken, Token endToken) {
debugEvent("Method");
MethodBody kind = pop();
@@ -230,6 +248,7 @@ class OutlineBuilder extends UnhandledListener {
formals, asyncModifier, computeProcedureKind(getOrSet));
}
+ @override
void endMixinApplication() {
debugEvent("MixinApplication");
List<TypeBuilder> mixins = pop();
@@ -237,10 +256,12 @@ class OutlineBuilder extends UnhandledListener {
push(library.addMixinApplication(supertype, mixins));
}
+ @override
void beginNamedMixinApplication(Token token) {
library.beginNestedScope();
}
+ @override
void endNamedMixinApplication(
Token classKeyword, Token implementsKeyword, Token endToken) {
debugEvent("endNamedMixinApplication");
@@ -255,11 +276,13 @@ class OutlineBuilder extends UnhandledListener {
checkEmpty();
}
+ @override
void endTypeArguments(int count, Token beginToken, Token endToken) {
debugEvent("TypeArguments");
push(popList(count) ?? NullValue.TypeArguments);
}
+ @override
void endType(Token beginToken, Token endToken) {
debugEvent("Type");
List<TypeBuilder> arguments = pop();
@@ -267,21 +290,25 @@ class OutlineBuilder extends UnhandledListener {
push(library.addInterfaceType(name, arguments));
}
+ @override
void endTypeList(int count) {
debugEvent("TypeList");
push(popList(count) ?? NullValue.TypeList);
}
+ @override
void endTypeVariables(int count, Token beginToken, Token endToken) {
debugEvent("TypeVariables");
push(popList(count) ?? NullValue.TypeVariables);
}
+ @override
void handleVoidKeyword(Token token) {
debugEvent("VoidKeyword");
push(library.addVoidType());
}
+ @override
void endFormalParameter(Token thisKeyword) {
debugEvent("FormalParameter");
String name = pop();
@@ -292,11 +319,13 @@ class OutlineBuilder extends UnhandledListener {
thisKeyword != null));
}
+ @override
void handleValuedFormalParameter(Token equals, Token token) {
debugEvent("ValuedFormalParameter");
// Ignored for now.
}
+ @override
void endFunctionTypedFormalParameter(Token token) {
debugEvent("FunctionTypedFormalParameter");
pop(); // Function type parameters.
@@ -307,6 +336,7 @@ class OutlineBuilder extends UnhandledListener {
push(name);
}
+ @override
void endOptionalFormalParameters(
int count, Token beginToken, Token endToken) {
debugEvent("OptionalFormalParameters");
@@ -319,6 +349,7 @@ class OutlineBuilder extends UnhandledListener {
push(parameters);
}
+ @override
void endFormalParameters(int count, Token beginToken, Token endToken) {
debugEvent("FormalParameters");
List formals = popList(count);
@@ -346,6 +377,7 @@ class OutlineBuilder extends UnhandledListener {
push(formals ?? NullValue.FormalParameters);
}
+ @override
void endEnum(Token enumKeyword, Token endBrace, int count) {
List<String> constants = popList(count);
String name = pop();
@@ -354,10 +386,12 @@ class OutlineBuilder extends UnhandledListener {
checkEmpty();
}
+ @override
void beginFunctionTypeAlias(Token token) {
library.beginNestedScope();
}
+ @override
void endFunctionTypeAlias(Token typedefKeyword, Token endToken) {
debugEvent("endFunctionTypeAlias");
List<FormalParameterBuilder> formals = pop();
@@ -370,6 +404,7 @@ class OutlineBuilder extends UnhandledListener {
checkEmpty();
}
+ @override
void endTopLevelFields(int count, Token beginToken, Token endToken) {
debugEvent("endTopLevelFields");
List<String> names = popList(count);
@@ -380,6 +415,7 @@ class OutlineBuilder extends UnhandledListener {
checkEmpty();
}
+ @override
void endFields(int count, Token beginToken, Token endToken) {
debugEvent("Fields");
List<String> names = popList(count);
@@ -389,6 +425,7 @@ class OutlineBuilder extends UnhandledListener {
library.addFields(metadata, modifiers, type, names);
}
+ @override
void endTypeVariable(Token token, Token extendsOrSuper) {
debugEvent("endTypeVariable");
TypeBuilder bound = pop();
@@ -396,6 +433,7 @@ class OutlineBuilder extends UnhandledListener {
push(library.addTypeVariable(name, bound));
}
+ @override
void endPartOf(Token partKeyword, Token semicolon) {
debugEvent("endPartOf");
String name = pop();
@@ -403,6 +441,7 @@ class OutlineBuilder extends UnhandledListener {
library.addPartOf(metadata, name);
}
+ @override
void endConstructorReference(
Token start, Token periodBeforeName, Token endToken) {
debugEvent("ConstructorReference");
@@ -412,6 +451,7 @@ class OutlineBuilder extends UnhandledListener {
push(library.addConstructorReference(name, typeArguments, suffix));
}
+ @override
void endFactoryMethod(Token beginToken, Token endToken) {
debugEvent("FactoryMethod");
MethodBody kind = pop();
@@ -427,49 +467,64 @@ class OutlineBuilder extends UnhandledListener {
redirectionTarget);
}
+ @override
void endRedirectingFactoryBody(Token beginToken, Token endToken) {
debugEvent("RedirectingFactoryBody");
push(MethodBody.RedirectingFactoryBody);
}
+ @override
void endFieldInitializer(Token assignmentOperator) {
debugEvent("FieldInitializer");
// Ignoring field initializers for now.
}
+ @override
+ void handleNoFieldInitializer(Token token) {
+ debugEvent("NoFieldInitializer");
+ }
+
+ @override
void endInitializers(int count, Token beginToken, Token endToken) {
debugEvent("Initializers");
// Ignored for now.
}
+ @override
void handleNoInitializers() {
debugEvent("NoInitializers");
// This is a constructor initializer and it's ignored for now.
}
+ @override
void endMember() {
debugEvent("Member");
}
+ @override
void endClassBody(int memberCount, Token beginToken, Token endToken) {
debugEvent("ClassBody");
}
+ @override
void handleAsyncModifier(Token asyncToken, Token starToken) {
debugEvent("AsyncModifier");
push(asyncMarkerFromTokens(asyncToken, starToken));
}
+ @override
void handleModifier(Token token) {
debugEvent("Modifier");
push(new Modifier.fromString(token.stringValue));
}
+ @override
void handleModifiers(int count) {
debugEvent("Modifiers");
push(popList(count) ?? NullValue.Modifiers);
}
+ @override
void debugEvent(String name) {
// printEvent(name);
}
« no previous file with comments | « pkg/fasta/lib/src/source/diet_listener.dart ('k') | pkg/fasta/lib/src/source/stack_listener.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698