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

Unified Diff: pkg/front_end/lib/src/fasta/parser/parser.dart

Issue 2705333002: Pass 'classKeyword' to endClassDeclaratio() and endNamedMixinApplication(). (Closed)
Patch Set: Created 3 years, 10 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
Index: pkg/front_end/lib/src/fasta/parser/parser.dart
diff --git a/pkg/front_end/lib/src/fasta/parser/parser.dart b/pkg/front_end/lib/src/fasta/parser/parser.dart
index 2a327ae81f3e903054749ef8117315c213dcb965..16af09f65e5711a482234df748a3575d13f90646 100644
--- a/pkg/front_end/lib/src/fasta/parser/parser.dart
+++ b/pkg/front_end/lib/src/fasta/parser/parser.dart
@@ -708,9 +708,11 @@ class Parser {
Token parseClassOrNamedMixinApplication(Token token) {
Token begin = token;
Token abstractKeyword;
+ Token classKeyword = token;
if (optional('abstract', token)) {
abstractKeyword = token;
token = token.next;
+ classKeyword = token;
}
ahe 2017/02/22 05:48:27 How about adding assert(optional("class", classKe
scheglov 2017/02/22 06:13:27 Done.
int modifierCount = 0;
if (abstractKeyword != null) {
@@ -733,25 +735,27 @@ class Parser {
if (optional('=', token)) {
Token equals = token;
token = token.next;
- return parseNamedMixinApplication(token, begin, name, equals);
+ return parseNamedMixinApplication(token, begin, classKeyword, name,
+ equals);
} else {
- return parseClass(token, begin, name);
+ return parseClass(token, begin, classKeyword, name);
}
}
- Token parseNamedMixinApplication(Token token, Token begin, Token name,
- Token equals) {
+ Token parseNamedMixinApplication(Token token, Token begin, Token classKeyword,
+ Token name, Token equals) {
token = parseMixinApplication(token);
Token implementsKeyword = null;
if (optional('implements', token)) {
implementsKeyword = token;
token = parseTypeList(token.next);
}
- listener.endNamedMixinApplication(begin, equals, implementsKeyword, token);
+ listener.endNamedMixinApplication(begin, classKeyword, equals,
+ implementsKeyword, token);
return expect(';', token);
}
- Token parseClass(Token token, Token begin, Token name) {
+ Token parseClass(Token token, Token begin, Token classKeyword, Token name) {
Token extendsKeyword;
if (optional('extends', token)) {
extendsKeyword = token;
@@ -775,7 +779,8 @@ class Parser {
}
token = parseClassBody(token);
listener.endClassDeclaration(
- interfacesCount, begin, extendsKeyword, implementsKeyword, token);
+ interfacesCount, begin, classKeyword, extendsKeyword,
+ implementsKeyword, token);
return token.next;
}
« no previous file with comments | « pkg/front_end/lib/src/fasta/parser/listener.dart ('k') | pkg/front_end/lib/src/fasta/source/diet_listener.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698