Chromium Code Reviews| 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; |
| } |