Augment. Parse enum constant augmentations, allow just ';' before methods.

I was unable to update the parser to avoid requirement for ';' at all.
Ideally we should be able to parse:
```
enum E {
  void foo()
}
```

Change-Id: I7edba99454b965407c3fb402642933b3d8d6bb7c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/363106
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
This commit is contained in:
Konstantin Shcheglov
2024-04-17 15:26:31 +00:00
committed by Commit Queue
parent 55f2754d6b
commit 4bb644ce3e
48 changed files with 279 additions and 116 deletions
@@ -769,8 +769,8 @@ class ForwardingListener implements Listener {
}
@override
void handleEnumElement(Token beginToken) {
listener?.handleEnumElement(beginToken);
void handleEnumElement(Token beginToken, Token? augmentToken) {
listener?.handleEnumElement(beginToken, augmentToken);
}
@override
@@ -403,7 +403,7 @@ class Listener implements UnescapeErrorListener {
/// Handle the enum element. Substructures:
/// - Metadata
/// - Enum value (identifier)
void handleEnumElement(Token beginToken) {
void handleEnumElement(Token beginToken, Token? augmentToken) {
logEvent("EnumElement");
}
@@ -338,9 +338,15 @@ class Parser {
/// [parsePrimaryPattern] and [parsePattern].
bool isLastPatternAllowedInsideUnaryPattern = false;
Parser(this.listener,
{this.useImplicitCreationExpression = true, this.allowPatterns = false})
: assert(listener != null); // ignore:unnecessary_null_comparison
/// Indicates whether the macros feature is enabled.
final bool enableFeatureMacros;
Parser(
this.listener, {
this.useImplicitCreationExpression = true,
this.allowPatterns = false,
this.enableFeatureMacros = false,
}) : assert(listener != null); // ignore:unnecessary_null_comparison
/// Executes [callback]; however if `this` is the `TestParser` (from
/// `pkg/front_end/test/parser_test_parser.dart`) then no output is printed
@@ -2368,7 +2374,7 @@ class Parser {
Token next = token.next!;
if (optional('}', next) || optional(';', next)) {
token = next;
if (elementCount == 0) {
if (elementCount == 0 && !enableFeatureMacros) {
reportRecoverableError(token, codes.messageEnumDeclarationEmpty);
}
break;
@@ -2566,6 +2572,13 @@ class Parser {
Token parseEnumElement(Token token) {
Token beginToken = token;
token = parseMetadataStar(token);
Token? augmentToken;
if (optional('augment', token.next!)) {
augmentToken = token.next!;
token = token.next!;
}
token = ensureIdentifier(token, IdentifierContext.enumValueDeclaration);
bool hasTypeArgumentsOrDot = false;
{
@@ -2600,7 +2613,7 @@ class Parser {
} else {
listener.handleNoArguments(token);
}
listener.handleEnumElement(beginToken);
listener.handleEnumElement(beginToken, augmentToken);
return token;
}
@@ -3,7 +3,6 @@
// BSD-style license that can be found in the LICENSE file.
import 'package:analysis_server/src/services/correction/fix.dart';
import 'package:analyzer/src/error/codes.dart';
import 'package:analyzer_plugin/utilities/fixes/fixes.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
@@ -174,10 +173,7 @@ enum E {ONE}
void f() {
E.ONE;
}
''',
errorFilter: (e) =>
e.errorCode == CompileTimeErrorCode.UNDEFINED_ENUM_CONSTANT,
matchFixMessage: "Add enum constant 'ONE'");
''');
}
Future<void> test_unnamed() async {
+10 -1
View File
@@ -5509,6 +5509,10 @@ abstract final class EnumConstantDeclaration implements Declaration {
/// doesn't provide any explicit arguments.
EnumConstantArguments? get arguments;
/// The `augment` keyword, or `null` if the keyword was absent.
@experimental
Token? get augmentKeyword;
/// The constructor that is invoked by this enum constant, or `null` if the
/// AST structure hasn't been resolved, or if the constructor couldn't be
/// resolved.
@@ -5523,6 +5527,9 @@ abstract final class EnumConstantDeclaration implements Declaration {
final class EnumConstantDeclarationImpl extends DeclarationImpl
implements EnumConstantDeclaration {
@override
final Token? augmentKeyword;
@override
final Token name;
@@ -5542,6 +5549,7 @@ final class EnumConstantDeclarationImpl extends DeclarationImpl
EnumConstantDeclarationImpl({
required super.comment,
required super.metadata,
required this.augmentKeyword,
required this.name,
required this.arguments,
}) {
@@ -5552,10 +5560,11 @@ final class EnumConstantDeclarationImpl extends DeclarationImpl
Token get endToken => arguments?.endToken ?? name;
@override
Token get firstTokenAfterCommentAndMetadata => name;
Token get firstTokenAfterCommentAndMetadata => augmentKeyword ?? name;
@override
ChildEntities get _childEntities => super._childEntities
..addToken('augmentKeyword', augmentKeyword)
..addToken('name', name)
..addNode('arguments', arguments);
+3 -1
View File
@@ -4062,7 +4062,7 @@ class AstBuilder extends StackListener {
}
@override
void handleEnumElement(Token beginToken) {
void handleEnumElement(Token beginToken, Token? augmentToken) {
debugEvent("EnumElement");
var tmpArguments = pop() as MethodInvocationImpl?;
var tmpConstructor = pop() as ConstructorNameImpl?;
@@ -4103,6 +4103,7 @@ class AstBuilder extends StackListener {
constant = EnumConstantDeclarationImpl(
comment: constant.documentationComment,
metadata: constant.metadata,
augmentKeyword: augmentToken,
name: constant.name,
arguments: EnumConstantArgumentsImpl(
typeArguments: typeArguments,
@@ -4449,6 +4450,7 @@ class AstBuilder extends StackListener {
EnumConstantDeclarationImpl(
comment: comment,
metadata: metadata,
augmentKeyword: null,
name: token,
arguments: null,
),
+5 -2
View File
@@ -38,8 +38,11 @@ class Parser {
featureSet,
lineInfo,
) {
fastaParser = fasta.Parser(astBuilder,
allowPatterns: featureSet.isEnabled(Feature.patterns));
fastaParser = fasta.Parser(
astBuilder,
allowPatterns: featureSet.isEnabled(Feature.patterns),
enableFeatureMacros: featureSet.isEnabled(Feature.macros),
);
astBuilder.parser = fastaParser;
astBuilder.allowNativeClause = allowNativeClause;
}
@@ -1399,9 +1399,9 @@ class ForwardingTestListener extends ForwardingListener {
}
@override
void handleEnumElement(Token beginToken) {
void handleEnumElement(Token beginToken, Token? augmentToken) {
expectIn('Enum');
super.handleEnumElement(beginToken);
super.handleEnumElement(beginToken, augmentToken);
}
@override
@@ -395,8 +395,11 @@ class FastaParserTestCase
ErrorReporter errorReporter = ErrorReporter(listener, source);
AstBuilder astBuilder = AstBuilder(errorReporter, source.uri, true,
featureSet!, LineInfo.fromContent(content));
fasta.Parser parser = fasta.Parser(astBuilder,
allowPatterns: featureSet!.isEnabled(Feature.patterns));
fasta.Parser parser = fasta.Parser(
astBuilder,
allowPatterns: featureSet!.isEnabled(Feature.patterns),
enableFeatureMacros: featureSet!.isEnabled(Feature.macros),
);
astBuilder.parser = parser;
astBuilder.allowNativeClause = allowNativeClause;
parser.parseUnit(_fastaTokens);
@@ -14,11 +14,13 @@ main() {
@reflectiveTest
class EnumDeclarationParserTest extends ParserDiagnosticsTest {
test_augment() {
test_augment_constant_add() {
var parseResult = parseStringWithErrors(r'''
augment library 'a.dart';
augment enum E {bar}
augment enum E {
v
}
''');
parseResult.assertNoErrors();
@@ -31,7 +33,138 @@ EnumDeclaration
leftBracket: {
constants
EnumConstantDeclaration
name: bar
name: v
rightBracket: }
''');
}
test_augment_constant_augment_withConstructor() {
var parseResult = parseStringWithErrors(r'''
augment library 'a.dart';
augment enum E {
augment v.foo()
}
''');
parseResult.assertNoErrors();
var node = parseResult.findNode.singleEnumDeclaration;
assertParsedNodeText(node, r'''
EnumDeclaration
augmentKeyword: augment
enumKeyword: enum
name: E
leftBracket: {
constants
EnumConstantDeclaration
augmentKeyword: augment
name: v
arguments: EnumConstantArguments
constructorSelector: ConstructorSelector
period: .
name: SimpleIdentifier
token: foo
argumentList: ArgumentList
leftParenthesis: (
rightParenthesis: )
rightBracket: }
''');
}
test_augment_noConstants_semicolon_method() {
var parseResult = parseStringWithErrors(r'''
augment library 'a.dart';
augment enum E {;
void foo() {}
}
''');
parseResult.assertNoErrors();
var node = parseResult.findNode.singleEnumDeclaration;
assertParsedNodeText(node, r'''
EnumDeclaration
augmentKeyword: augment
enumKeyword: enum
name: E
leftBracket: {
semicolon: ;
members
MethodDeclaration
returnType: NamedType
name: void
name: foo
parameters: FormalParameterList
leftParenthesis: (
rightParenthesis: )
body: BlockFunctionBody
block: Block
leftBracket: {
rightBracket: }
rightBracket: }
''');
}
test_declaration_empty() {
var parseResult = parseStringWithErrors(r'''
enum E {}
''');
parseResult.assertNoErrors();
var node = parseResult.findNode.singleEnumDeclaration;
assertParsedNodeText(node, r'''
EnumDeclaration
enumKeyword: enum
name: E
leftBracket: {
rightBracket: }
''');
}
test_declaration_noConstants_semicolon() {
var parseResult = parseStringWithErrors(r'''
enum E {;}
''');
parseResult.assertNoErrors();
var node = parseResult.findNode.singleEnumDeclaration;
assertParsedNodeText(node, r'''
EnumDeclaration
enumKeyword: enum
name: E
leftBracket: {
semicolon: ;
rightBracket: }
''');
}
test_declaration_noConstants_semicolon_method() {
var parseResult = parseStringWithErrors(r'''
enum E {;
void foo() {}
}
''');
parseResult.assertNoErrors();
var node = parseResult.findNode.singleEnumDeclaration;
assertParsedNodeText(node, r'''
EnumDeclaration
enumKeyword: enum
name: E
leftBracket: {
semicolon: ;
members
MethodDeclaration
returnType: NamedType
name: void
name: foo
parameters: FormalParameterList
leftParenthesis: (
rightParenthesis: )
body: BlockFunctionBody
block: Block
leftBracket: {
rightBracket: }
rightBracket: }
''');
}
+1 -1
View File
@@ -417,7 +417,7 @@ class MiniAstBuilder extends StackListener {
}
@override
void handleEnumElement(Token beginToken) {
void handleEnumElement(Token beginToken, Token? augmentToken) {
debugEvent("EnumElement");
pop(); // Arguments.
pop(); // Type arguments.
@@ -1758,7 +1758,7 @@ class _MacroListener implements Listener {
}
@override
void handleEnumElement(Token beginToken) {
void handleEnumElement(Token beginToken, Token? augmentToken) {
_unexpected();
}
@@ -1132,7 +1132,7 @@ class DietListener extends StackListenerImpl {
}
@override
void handleEnumElement(Token beginKeyword) {
void handleEnumElement(Token beginKeyword, Token? augmentToken) {
debugEvent("EnumElement");
}
@@ -2929,7 +2929,7 @@ class OutlineBuilder extends StackListenerImpl {
}
@override
void handleEnumElement(Token beginToken) {
void handleEnumElement(Token beginToken, Token? augmentToken) {
debugEvent("handleEnumElement");
assert(checkState(beginToken, [
/* argumentsBeginToken */ ValueKinds.ArgumentsTokenOrNull,
@@ -523,9 +523,9 @@ abstract class AbstractParserAstListener implements Listener {
}
@override
void handleEnumElement(Token beginToken) {
EnumElementHandle data =
new EnumElementHandle(ParserAstType.HANDLE, beginToken: beginToken);
void handleEnumElement(Token beginToken, Token? augmentToken) {
EnumElementHandle data = new EnumElementHandle(ParserAstType.HANDLE,
beginToken: beginToken, augmentToken: augmentToken);
seen(data);
}
@@ -3994,13 +3994,16 @@ class EnumHeaderHandle extends ParserAstNode {
class EnumElementHandle extends ParserAstNode {
final Token beginToken;
final Token? augmentToken;
EnumElementHandle(ParserAstType type, {required this.beginToken})
EnumElementHandle(ParserAstType type,
{required this.beginToken, this.augmentToken})
: super("EnumElement", type);
@override
Map<String, Object?> get deprecatedArguments => {
"beginToken": beginToken,
"augmentToken": augmentToken,
};
}
@@ -39,7 +39,7 @@ beginCompilationUnit(enum)
endConstructorReference(one, null, (, ConstructorReferenceContext.Const)
beginArguments(()
endArguments(0, (, ))
handleEnumElement({)
handleEnumElement({, null)
beginMetadataStar(two)
endMetadataStar(0)
handleIdentifier(two, enumValueDeclaration)
@@ -57,7 +57,7 @@ beginCompilationUnit(enum)
endConstructorReference(two, null, (, ConstructorReferenceContext.Const)
beginArguments(()
endArguments(0, (, ))
handleEnumElement(,)
handleEnumElement(,, null)
beginMetadataStar(three)
endMetadataStar(0)
handleIdentifier(three, enumValueDeclaration)
@@ -76,7 +76,7 @@ beginCompilationUnit(enum)
beginArguments(()
handleLiteralInt(42)
endArguments(1, (, ))
handleEnumElement(,)
handleEnumElement(,, null)
handleEnumElements(;, 3)
beginMetadataStar(const)
endMetadataStar(0)
@@ -59,7 +59,7 @@ parseUnit(enum)
parseArgumentsRest(()
listener: beginArguments(()
listener: endArguments(0, (, ))
listener: handleEnumElement({)
listener: handleEnumElement({, null)
parseEnumElement(,)
parseMetadataStar(,)
listener: beginMetadataStar(two)
@@ -82,7 +82,7 @@ parseUnit(enum)
parseArgumentsRest(()
listener: beginArguments(()
listener: endArguments(0, (, ))
listener: handleEnumElement(,)
listener: handleEnumElement(,, null)
parseEnumElement(,)
parseMetadataStar(,)
listener: beginMetadataStar(three)
@@ -112,7 +112,7 @@ parseUnit(enum)
parseLiteralInt(()
listener: handleLiteralInt(42)
listener: endArguments(1, (, ))
listener: handleEnumElement(,)
listener: handleEnumElement(,, null)
listener: handleEnumElements(;, 3)
notEofOrValue(}, const)
parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Enum, E)
@@ -36,7 +36,7 @@ beginCompilationUnit(base)
handleNoConstructorReferenceContinuationAfterTypeArguments(})
endConstructorReference(v, null, }, ConstructorReferenceContext.Const)
handleNoArguments(v)
handleEnumElement({)
handleEnumElement({, null)
handleEnumElements(}, 1)
endEnum(base, enum, {, 0, })
endTopLevelDeclaration(final)
@@ -59,7 +59,7 @@ beginCompilationUnit(base)
handleNoConstructorReferenceContinuationAfterTypeArguments(})
endConstructorReference(v, null, }, ConstructorReferenceContext.Const)
handleNoArguments(v)
handleEnumElement({)
handleEnumElement({, null)
handleEnumElements(}, 1)
endEnum(final, enum, {, 0, })
endTopLevelDeclaration(interface)
@@ -82,7 +82,7 @@ beginCompilationUnit(base)
handleNoConstructorReferenceContinuationAfterTypeArguments(})
endConstructorReference(v, null, }, ConstructorReferenceContext.Const)
handleNoArguments(v)
handleEnumElement({)
handleEnumElement({, null)
handleEnumElements(}, 1)
endEnum(interface, enum, {, 0, })
endTopLevelDeclaration(sealed)
@@ -105,7 +105,7 @@ beginCompilationUnit(base)
handleNoConstructorReferenceContinuationAfterTypeArguments(})
endConstructorReference(v, null, }, ConstructorReferenceContext.Const)
handleNoArguments(v)
handleEnumElement({)
handleEnumElement({, null)
handleEnumElements(}, 1)
endEnum(sealed, enum, {, 0, })
endTopLevelDeclaration()
@@ -33,7 +33,7 @@ parseUnit(base)
listener: handleNoConstructorReferenceContinuationAfterTypeArguments(})
listener: endConstructorReference(v, null, }, ConstructorReferenceContext.Const)
listener: handleNoArguments(v)
listener: handleEnumElement({)
listener: handleEnumElement({, null)
listener: handleEnumElements(}, 1)
listener: endEnum(base, enum, {, 0, })
listener: endTopLevelDeclaration(final)
@@ -68,7 +68,7 @@ parseUnit(base)
listener: handleNoConstructorReferenceContinuationAfterTypeArguments(})
listener: endConstructorReference(v, null, }, ConstructorReferenceContext.Const)
listener: handleNoArguments(v)
listener: handleEnumElement({)
listener: handleEnumElement({, null)
listener: handleEnumElements(}, 1)
listener: endEnum(final, enum, {, 0, })
listener: endTopLevelDeclaration(interface)
@@ -103,7 +103,7 @@ parseUnit(base)
listener: handleNoConstructorReferenceContinuationAfterTypeArguments(})
listener: endConstructorReference(v, null, }, ConstructorReferenceContext.Const)
listener: handleNoArguments(v)
listener: handleEnumElement({)
listener: handleEnumElement({, null)
listener: handleEnumElements(}, 1)
listener: endEnum(interface, enum, {, 0, })
listener: endTopLevelDeclaration(sealed)
@@ -138,7 +138,7 @@ parseUnit(base)
listener: handleNoConstructorReferenceContinuationAfterTypeArguments(})
listener: endConstructorReference(v, null, }, ConstructorReferenceContext.Const)
listener: handleNoArguments(v)
listener: handleEnumElement({)
listener: handleEnumElement({, null)
listener: handleEnumElements(}, 1)
listener: endEnum(sealed, enum, {, 0, })
listener: endTopLevelDeclaration()
@@ -120,7 +120,7 @@ beginCompilationUnit(enum)
handleNoConstructorReferenceContinuationAfterTypeArguments(})
endConstructorReference(v, null, }, ConstructorReferenceContext.Const)
handleNoArguments(v)
handleEnumElement({)
handleEnumElement({, null)
handleEnumElements(}, 1)
endEnum(enum, enum, {, 0, })
endTopLevelDeclaration(enum)
@@ -146,7 +146,7 @@ beginCompilationUnit(enum)
handleNoConstructorReferenceContinuationAfterTypeArguments(})
endConstructorReference(v, null, }, ConstructorReferenceContext.Const)
handleNoArguments(v)
handleEnumElement({)
handleEnumElement({, null)
handleEnumElements(}, 1)
endEnum(enum, enum, {, 0, })
endTopLevelDeclaration(enum)
@@ -172,7 +172,7 @@ beginCompilationUnit(enum)
handleNoConstructorReferenceContinuationAfterTypeArguments(})
endConstructorReference(v, null, }, ConstructorReferenceContext.Const)
handleNoArguments(v)
handleEnumElement({)
handleEnumElement({, null)
handleEnumElements(}, 1)
endEnum(enum, enum, {, 0, })
endTopLevelDeclaration(enum)
@@ -199,7 +199,7 @@ beginCompilationUnit(enum)
handleNoConstructorReferenceContinuationAfterTypeArguments(})
endConstructorReference(v, null, }, ConstructorReferenceContext.Const)
handleNoArguments(v)
handleEnumElement({)
handleEnumElement({, null)
handleEnumElements(}, 1)
endEnum(enum, enum, {, 0, })
endTopLevelDeclaration(enum)
@@ -222,7 +222,7 @@ beginCompilationUnit(enum)
handleNoConstructorReferenceContinuationAfterTypeArguments(})
endConstructorReference(v, null, }, ConstructorReferenceContext.Const)
handleNoArguments(v)
handleEnumElement({)
handleEnumElement({, null)
handleEnumElements(}, 1)
endEnum(enum, enum, {, 0, })
endTopLevelDeclaration(enum)
@@ -245,7 +245,7 @@ beginCompilationUnit(enum)
handleNoConstructorReferenceContinuationAfterTypeArguments(})
endConstructorReference(v, null, }, ConstructorReferenceContext.Const)
handleNoArguments(v)
handleEnumElement({)
handleEnumElement({, null)
handleEnumElements(}, 1)
endEnum(enum, enum, {, 0, })
endTopLevelDeclaration(enum)
@@ -271,7 +271,7 @@ beginCompilationUnit(enum)
handleNoConstructorReferenceContinuationAfterTypeArguments(})
endConstructorReference(v, null, }, ConstructorReferenceContext.Const)
handleNoArguments(v)
handleEnumElement({)
handleEnumElement({, null)
handleEnumElements(}, 1)
endEnum(enum, enum, {, 0, })
endTopLevelDeclaration(enum)
@@ -299,7 +299,7 @@ beginCompilationUnit(enum)
handleNoConstructorReferenceContinuationAfterTypeArguments(})
endConstructorReference(v, null, }, ConstructorReferenceContext.Const)
handleNoArguments(v)
handleEnumElement({)
handleEnumElement({, null)
handleEnumElements(}, 1)
endEnum(enum, enum, {, 0, })
endTopLevelDeclaration(enum)
@@ -325,7 +325,7 @@ beginCompilationUnit(enum)
handleNoConstructorReferenceContinuationAfterTypeArguments(})
endConstructorReference(v, null, }, ConstructorReferenceContext.Const)
handleNoArguments(v)
handleEnumElement({)
handleEnumElement({, null)
handleEnumElements(}, 1)
endEnum(enum, enum, {, 0, })
endTopLevelDeclaration(enum)
@@ -355,7 +355,7 @@ beginCompilationUnit(enum)
handleNoConstructorReferenceContinuationAfterTypeArguments(})
endConstructorReference(v, null, }, ConstructorReferenceContext.Const)
handleNoArguments(v)
handleEnumElement({)
handleEnumElement({, null)
handleEnumElements(}, 1)
endEnum(enum, enum, {, 0, })
endTopLevelDeclaration(enum)
@@ -381,7 +381,7 @@ beginCompilationUnit(enum)
handleNoConstructorReferenceContinuationAfterTypeArguments(})
endConstructorReference(v, null, }, ConstructorReferenceContext.Const)
handleNoArguments(v)
handleEnumElement({)
handleEnumElement({, null)
handleEnumElements(}, 1)
endEnum(enum, enum, {, 0, })
endTopLevelDeclaration(enum)
@@ -413,7 +413,7 @@ beginCompilationUnit(enum)
handleNoConstructorReferenceContinuationAfterTypeArguments(})
endConstructorReference(v, null, }, ConstructorReferenceContext.Const)
handleNoArguments(v)
handleEnumElement({)
handleEnumElement({, null)
handleEnumElements(}, 1)
endEnum(enum, enum, {, 0, })
endTopLevelDeclaration(enum)
@@ -441,7 +441,7 @@ beginCompilationUnit(enum)
handleNoConstructorReferenceContinuationAfterTypeArguments(})
endConstructorReference(v, null, }, ConstructorReferenceContext.Const)
handleNoArguments(v)
handleEnumElement({)
handleEnumElement({, null)
handleEnumElements(}, 1)
endEnum(enum, enum, {, 0, })
endTopLevelDeclaration(enum)
@@ -475,7 +475,7 @@ beginCompilationUnit(enum)
handleNoConstructorReferenceContinuationAfterTypeArguments(})
endConstructorReference(v, null, }, ConstructorReferenceContext.Const)
handleNoArguments(v)
handleEnumElement({)
handleEnumElement({, null)
handleEnumElements(}, 1)
endEnum(enum, enum, {, 0, })
endTopLevelDeclaration(enum)
@@ -505,7 +505,7 @@ beginCompilationUnit(enum)
handleNoConstructorReferenceContinuationAfterTypeArguments(})
endConstructorReference(v, null, }, ConstructorReferenceContext.Const)
handleNoArguments(v)
handleEnumElement({)
handleEnumElement({, null)
handleEnumElements(}, 1)
endEnum(enum, enum, {, 0, })
endTopLevelDeclaration()
@@ -34,7 +34,7 @@ parseUnit(enum)
listener: handleNoConstructorReferenceContinuationAfterTypeArguments(})
listener: endConstructorReference(v, null, }, ConstructorReferenceContext.Const)
listener: handleNoArguments(v)
listener: handleEnumElement({)
listener: handleEnumElement({, null)
listener: handleEnumElements(}, 1)
listener: endEnum(enum, enum, {, 0, })
listener: endTopLevelDeclaration(enum)
@@ -73,7 +73,7 @@ parseUnit(enum)
listener: handleNoConstructorReferenceContinuationAfterTypeArguments(})
listener: endConstructorReference(v, null, }, ConstructorReferenceContext.Const)
listener: handleNoArguments(v)
listener: handleEnumElement({)
listener: handleEnumElement({, null)
listener: handleEnumElements(}, 1)
listener: endEnum(enum, enum, {, 0, })
listener: endTopLevelDeclaration(enum)
@@ -114,7 +114,7 @@ parseUnit(enum)
listener: handleNoConstructorReferenceContinuationAfterTypeArguments(})
listener: endConstructorReference(v, null, }, ConstructorReferenceContext.Const)
listener: handleNoArguments(v)
listener: handleEnumElement({)
listener: handleEnumElement({, null)
listener: handleEnumElements(}, 1)
listener: endEnum(enum, enum, {, 0, })
listener: endTopLevelDeclaration(enum)
@@ -160,7 +160,7 @@ parseUnit(enum)
listener: handleNoConstructorReferenceContinuationAfterTypeArguments(})
listener: endConstructorReference(v, null, }, ConstructorReferenceContext.Const)
listener: handleNoArguments(v)
listener: handleEnumElement({)
listener: handleEnumElement({, null)
listener: handleEnumElements(}, 1)
listener: endEnum(enum, enum, {, 0, })
listener: endTopLevelDeclaration(enum)
@@ -196,7 +196,7 @@ parseUnit(enum)
listener: handleNoConstructorReferenceContinuationAfterTypeArguments(})
listener: endConstructorReference(v, null, }, ConstructorReferenceContext.Const)
listener: handleNoArguments(v)
listener: handleEnumElement({)
listener: handleEnumElement({, null)
listener: handleEnumElements(}, 1)
listener: endEnum(enum, enum, {, 0, })
listener: endTopLevelDeclaration(enum)
@@ -232,7 +232,7 @@ parseUnit(enum)
listener: handleNoConstructorReferenceContinuationAfterTypeArguments(})
listener: endConstructorReference(v, null, }, ConstructorReferenceContext.Const)
listener: handleNoArguments(v)
listener: handleEnumElement({)
listener: handleEnumElement({, null)
listener: handleEnumElements(}, 1)
listener: endEnum(enum, enum, {, 0, })
listener: endTopLevelDeclaration(enum)
@@ -273,7 +273,7 @@ parseUnit(enum)
listener: handleNoConstructorReferenceContinuationAfterTypeArguments(})
listener: endConstructorReference(v, null, }, ConstructorReferenceContext.Const)
listener: handleNoArguments(v)
listener: handleEnumElement({)
listener: handleEnumElement({, null)
listener: handleEnumElements(}, 1)
listener: endEnum(enum, enum, {, 0, })
listener: endTopLevelDeclaration(enum)
@@ -315,7 +315,7 @@ parseUnit(enum)
listener: handleNoConstructorReferenceContinuationAfterTypeArguments(})
listener: endConstructorReference(v, null, }, ConstructorReferenceContext.Const)
listener: handleNoArguments(v)
listener: handleEnumElement({)
listener: handleEnumElement({, null)
listener: handleEnumElements(}, 1)
listener: endEnum(enum, enum, {, 0, })
listener: endTopLevelDeclaration(enum)
@@ -354,7 +354,7 @@ parseUnit(enum)
listener: handleNoConstructorReferenceContinuationAfterTypeArguments(})
listener: endConstructorReference(v, null, }, ConstructorReferenceContext.Const)
listener: handleNoArguments(v)
listener: handleEnumElement({)
listener: handleEnumElement({, null)
listener: handleEnumElements(}, 1)
listener: endEnum(enum, enum, {, 0, })
listener: endTopLevelDeclaration(enum)
@@ -396,7 +396,7 @@ parseUnit(enum)
listener: handleNoConstructorReferenceContinuationAfterTypeArguments(})
listener: endConstructorReference(v, null, }, ConstructorReferenceContext.Const)
listener: handleNoArguments(v)
listener: handleEnumElement({)
listener: handleEnumElement({, null)
listener: handleEnumElements(}, 1)
listener: endEnum(enum, enum, {, 0, })
listener: endTopLevelDeclaration(enum)
@@ -437,7 +437,7 @@ parseUnit(enum)
listener: handleNoConstructorReferenceContinuationAfterTypeArguments(})
listener: endConstructorReference(v, null, }, ConstructorReferenceContext.Const)
listener: handleNoArguments(v)
listener: handleEnumElement({)
listener: handleEnumElement({, null)
listener: handleEnumElements(}, 1)
listener: endEnum(enum, enum, {, 0, })
listener: endTopLevelDeclaration(enum)
@@ -486,7 +486,7 @@ parseUnit(enum)
listener: handleNoConstructorReferenceContinuationAfterTypeArguments(})
listener: endConstructorReference(v, null, }, ConstructorReferenceContext.Const)
listener: handleNoArguments(v)
listener: handleEnumElement({)
listener: handleEnumElement({, null)
listener: handleEnumElements(}, 1)
listener: endEnum(enum, enum, {, 0, })
listener: endTopLevelDeclaration(enum)
@@ -535,7 +535,7 @@ parseUnit(enum)
listener: handleNoConstructorReferenceContinuationAfterTypeArguments(})
listener: endConstructorReference(v, null, }, ConstructorReferenceContext.Const)
listener: handleNoArguments(v)
listener: handleEnumElement({)
listener: handleEnumElement({, null)
listener: handleEnumElements(}, 1)
listener: endEnum(enum, enum, {, 0, })
listener: endTopLevelDeclaration(enum)
@@ -597,7 +597,7 @@ parseUnit(enum)
listener: handleNoConstructorReferenceContinuationAfterTypeArguments(})
listener: endConstructorReference(v, null, }, ConstructorReferenceContext.Const)
listener: handleNoArguments(v)
listener: handleEnumElement({)
listener: handleEnumElement({, null)
listener: handleEnumElements(}, 1)
listener: endEnum(enum, enum, {, 0, })
listener: endTopLevelDeclaration(enum)
@@ -658,7 +658,7 @@ parseUnit(enum)
listener: handleNoConstructorReferenceContinuationAfterTypeArguments(})
listener: endConstructorReference(v, null, }, ConstructorReferenceContext.Const)
listener: handleNoArguments(v)
listener: handleEnumElement({)
listener: handleEnumElement({, null)
listener: handleEnumElements(}, 1)
listener: endEnum(enum, enum, {, 0, })
listener: endTopLevelDeclaration()
@@ -42,7 +42,7 @@ beginCompilationUnit(enum)
handleRecoverableError(Message[ExpectedAfterButGot, Expected '(' after this., null, {string: (}], ;, ;)
beginArguments(()
endArguments(0, (, ))
handleEnumElement({)
handleEnumElement({, null)
handleEnumElements(;, 1)
beginMetadataStar(const)
endMetadataStar(0)
@@ -54,7 +54,7 @@ parseUnit(enum)
parseArgumentsRest(()
listener: beginArguments(()
listener: endArguments(0, (, ))
listener: handleEnumElement({)
listener: handleEnumElement({, null)
listener: handleEnumElements(;, 1)
notEofOrValue(}, const)
parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Enum, E)
@@ -42,7 +42,7 @@ beginCompilationUnit(enum)
handleRecoverableError(Message[ExpectedAfterButGot, Expected '(' after this., null, {string: (}], ,, ,)
beginArguments(()
endArguments(0, (, ))
handleEnumElement({)
handleEnumElement({, null)
beginMetadataStar(v2)
endMetadataStar(0)
handleIdentifier(v2, enumValueDeclaration)
@@ -57,7 +57,7 @@ beginCompilationUnit(enum)
endConstructorReference(v2, ., (, ConstructorReferenceContext.Const)
beginArguments(()
endArguments(0, (, ))
handleEnumElement(,)
handleEnumElement(,, null)
handleEnumElements(;, 2)
beginMetadataStar(const)
endMetadataStar(0)
@@ -54,7 +54,7 @@ parseUnit(enum)
parseArgumentsRest(()
listener: beginArguments(()
listener: endArguments(0, (, ))
listener: handleEnumElement({)
listener: handleEnumElement({, null)
parseEnumElement(,)
parseMetadataStar(,)
listener: beginMetadataStar(v2)
@@ -75,7 +75,7 @@ parseUnit(enum)
parseArgumentsRest(()
listener: beginArguments(()
listener: endArguments(0, (, ))
listener: handleEnumElement(,)
listener: handleEnumElement(,, null)
listener: handleEnumElements(;, 2)
notEofOrValue(}, const)
parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Enum, E)
@@ -30,7 +30,7 @@ beginCompilationUnit(enum)
endConstructorReference(v1, ., (, ConstructorReferenceContext.Const)
beginArguments(()
endArguments(0, (, ))
handleEnumElement({)
handleEnumElement({, null)
beginMetadataStar(v2)
endMetadataStar(0)
handleIdentifier(v2, enumValueDeclaration)
@@ -45,7 +45,7 @@ beginCompilationUnit(enum)
endConstructorReference(v2, ., (, ConstructorReferenceContext.Const)
beginArguments(()
endArguments(0, (, ))
handleEnumElement(,)
handleEnumElement(,, null)
handleEnumElements(;, 2)
beginMetadataStar(const)
endMetadataStar(0)
@@ -47,7 +47,7 @@ parseUnit(enum)
parseArgumentsRest(()
listener: beginArguments(()
listener: endArguments(0, (, ))
listener: handleEnumElement({)
listener: handleEnumElement({, null)
parseEnumElement(,)
parseMetadataStar(,)
listener: beginMetadataStar(v2)
@@ -68,7 +68,7 @@ parseUnit(enum)
parseArgumentsRest(()
listener: beginArguments(()
listener: endArguments(0, (, ))
listener: handleEnumElement(,)
listener: handleEnumElement(,, null)
listener: handleEnumElements(;, 2)
notEofOrValue(}, const)
parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Enum, E)
@@ -30,7 +30,7 @@ beginCompilationUnit(enum)
endConstructorReference(v, ., (, ConstructorReferenceContext.Const)
beginArguments(()
endArguments(0, (, ))
handleEnumElement({)
handleEnumElement({, null)
handleEnumElements(;, 1)
beginMetadataStar(const)
endMetadataStar(0)
@@ -47,7 +47,7 @@ parseUnit(enum)
parseArgumentsRest(()
listener: beginArguments(()
listener: endArguments(0, (, ))
listener: handleEnumElement({)
listener: handleEnumElement({, null)
listener: handleEnumElements(;, 1)
notEofOrValue(}, const)
parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Enum, E)
@@ -37,7 +37,7 @@ beginCompilationUnit(enum)
handleRecoverableError(Message[ExpectedAfterButGot, Expected '(' after this., null, {string: (}], >, >)
beginArguments(()
endArguments(0, (, ))
handleEnumElement({)
handleEnumElement({, null)
handleEnumElements(;, 1)
beginMetadataStar(const)
endMetadataStar(0)
@@ -49,7 +49,7 @@ parseUnit(enum)
parseArgumentsRest(()
listener: beginArguments(()
listener: endArguments(0, (, ))
listener: handleEnumElement({)
listener: handleEnumElement({, null)
listener: handleEnumElements(;, 1)
notEofOrValue(}, const)
parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Enum, E)
@@ -37,7 +37,7 @@ beginCompilationUnit(enum)
handleRecoverableError(Message[ExpectedAfterButGot, Expected '(' after this., null, {string: (}], >, >)
beginArguments(()
endArguments(0, (, ))
handleEnumElement({)
handleEnumElement({, null)
beginMetadataStar(v)
endMetadataStar(0)
handleIdentifier(v, enumValueDeclaration)
@@ -52,7 +52,7 @@ beginCompilationUnit(enum)
endConstructorReference(v, ., (, ConstructorReferenceContext.Const)
beginArguments(()
endArguments(0, (, ))
handleEnumElement(,)
handleEnumElement(,, null)
handleEnumElements(;, 2)
beginMetadataStar(const)
endMetadataStar(0)
@@ -49,7 +49,7 @@ parseUnit(enum)
parseArgumentsRest(()
listener: beginArguments(()
listener: endArguments(0, (, ))
listener: handleEnumElement({)
listener: handleEnumElement({, null)
parseEnumElement(,)
parseMetadataStar(,)
listener: beginMetadataStar(v)
@@ -70,7 +70,7 @@ parseUnit(enum)
parseArgumentsRest(()
listener: beginArguments(()
listener: endArguments(0, (, ))
listener: handleEnumElement(,)
listener: handleEnumElement(,, null)
listener: handleEnumElements(;, 2)
notEofOrValue(}, const)
parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Enum, E)
@@ -30,7 +30,7 @@ beginCompilationUnit(enum)
endConstructorReference(v, null, (, ConstructorReferenceContext.Const)
beginArguments(()
endArguments(0, (, ))
handleEnumElement({)
handleEnumElement({, null)
beginMetadataStar(v)
endMetadataStar(0)
handleIdentifier(v, enumValueDeclaration)
@@ -45,7 +45,7 @@ beginCompilationUnit(enum)
endConstructorReference(v, ., (, ConstructorReferenceContext.Const)
beginArguments(()
endArguments(0, (, ))
handleEnumElement(,)
handleEnumElement(,, null)
handleEnumElements(;, 2)
beginMetadataStar(const)
endMetadataStar(0)
@@ -46,7 +46,7 @@ parseUnit(enum)
parseArgumentsRest(()
listener: beginArguments(()
listener: endArguments(0, (, ))
listener: handleEnumElement({)
listener: handleEnumElement({, null)
parseEnumElement(,)
parseMetadataStar(,)
listener: beginMetadataStar(v)
@@ -67,7 +67,7 @@ parseUnit(enum)
parseArgumentsRest(()
listener: beginArguments(()
listener: endArguments(0, (, ))
listener: handleEnumElement(,)
listener: handleEnumElement(,, null)
listener: handleEnumElements(;, 2)
notEofOrValue(}, const)
parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Enum, E)
@@ -30,7 +30,7 @@ beginCompilationUnit(enum)
endConstructorReference(v, null, (, ConstructorReferenceContext.Const)
beginArguments(()
endArguments(0, (, ))
handleEnumElement({)
handleEnumElement({, null)
handleEnumElements(;, 1)
beginMetadataStar(const)
endMetadataStar(0)
@@ -46,7 +46,7 @@ parseUnit(enum)
parseArgumentsRest(()
listener: beginArguments(()
listener: endArguments(0, (, ))
listener: handleEnumElement({)
listener: handleEnumElement({, null)
listener: handleEnumElements(;, 1)
notEofOrValue(}, const)
parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Enum, E)
@@ -30,7 +30,7 @@ beginCompilationUnit(enum)
handleRecoverableError(Message[ExpectedAfterButGot, Expected '(' after this., null, {string: (}], ;, ;)
beginArguments(()
endArguments(0, (, ))
handleEnumElement({)
handleEnumElement({, null)
handleEnumElements(;, 1)
beginMetadataStar(const)
endMetadataStar(0)
@@ -42,7 +42,7 @@ parseUnit(enum)
parseArgumentsRest(()
listener: beginArguments(()
listener: endArguments(0, (, ))
listener: handleEnumElement({)
listener: handleEnumElement({, null)
listener: handleEnumElements(;, 1)
notEofOrValue(}, const)
parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Enum, E)
@@ -30,7 +30,7 @@ beginCompilationUnit(enum)
handleRecoverableError(Message[ExpectedAfterButGot, Expected '(' after this., null, {string: (}], ,, ,)
beginArguments(()
endArguments(0, (, ))
handleEnumElement({)
handleEnumElement({, null)
beginMetadataStar(v)
endMetadataStar(0)
handleIdentifier(v, enumValueDeclaration)
@@ -41,7 +41,7 @@ beginCompilationUnit(enum)
endConstructorReference(v, ., (, ConstructorReferenceContext.Const)
beginArguments(()
endArguments(0, (, ))
handleEnumElement(,)
handleEnumElement(,, null)
handleEnumElements(;, 2)
beginMetadataStar(const)
endMetadataStar(0)
@@ -42,7 +42,7 @@ parseUnit(enum)
parseArgumentsRest(()
listener: beginArguments(()
listener: endArguments(0, (, ))
listener: handleEnumElement({)
listener: handleEnumElement({, null)
parseEnumElement(,)
parseMetadataStar(,)
listener: beginMetadataStar(v)
@@ -59,7 +59,7 @@ parseUnit(enum)
parseArgumentsRest(()
listener: beginArguments(()
listener: endArguments(0, (, ))
listener: handleEnumElement(,)
listener: handleEnumElement(,, null)
listener: handleEnumElements(;, 2)
notEofOrValue(}, const)
parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Enum, E)
@@ -18,7 +18,7 @@ beginCompilationUnit(enum)
endConstructorReference(v, ., (, ConstructorReferenceContext.Const)
beginArguments(()
endArguments(0, (, ))
handleEnumElement({)
handleEnumElement({, null)
beginMetadataStar(v)
endMetadataStar(0)
handleIdentifier(v, enumValueDeclaration)
@@ -29,7 +29,7 @@ beginCompilationUnit(enum)
endConstructorReference(v, ., (, ConstructorReferenceContext.Const)
beginArguments(()
endArguments(0, (, ))
handleEnumElement(,)
handleEnumElement(,, null)
handleEnumElements(;, 2)
beginMetadataStar(const)
endMetadataStar(0)
@@ -35,7 +35,7 @@ parseUnit(enum)
parseArgumentsRest(()
listener: beginArguments(()
listener: endArguments(0, (, ))
listener: handleEnumElement({)
listener: handleEnumElement({, null)
parseEnumElement(,)
parseMetadataStar(,)
listener: beginMetadataStar(v)
@@ -52,7 +52,7 @@ parseUnit(enum)
parseArgumentsRest(()
listener: beginArguments(()
listener: endArguments(0, (, ))
listener: handleEnumElement(,)
listener: handleEnumElement(,, null)
listener: handleEnumElements(;, 2)
notEofOrValue(}, const)
parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Enum, E)
@@ -18,7 +18,7 @@ beginCompilationUnit(enum)
endConstructorReference(v, ., (, ConstructorReferenceContext.Const)
beginArguments(()
endArguments(0, (, ))
handleEnumElement({)
handleEnumElement({, null)
handleEnumElements(;, 1)
beginMetadataStar(const)
endMetadataStar(0)
@@ -35,7 +35,7 @@ parseUnit(enum)
parseArgumentsRest(()
listener: beginArguments(()
listener: endArguments(0, (, ))
listener: handleEnumElement({)
listener: handleEnumElement({, null)
listener: handleEnumElements(;, 1)
notEofOrValue(}, const)
parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Enum, E)
@@ -17,7 +17,7 @@ beginCompilationUnit(enum)
handleNoConstructorReferenceContinuationAfterTypeArguments(;)
endConstructorReference(x, null, ;, ConstructorReferenceContext.Const)
handleNoArguments(x)
handleEnumElement({)
handleEnumElement({, null)
handleEnumElements(;, 1)
beginMetadataStar(String)
endMetadataStar(0)
@@ -31,7 +31,7 @@ parseUnit(enum)
listener: handleNoConstructorReferenceContinuationAfterTypeArguments(;)
listener: endConstructorReference(x, null, ;, ConstructorReferenceContext.Const)
listener: handleNoArguments(x)
listener: handleEnumElement({)
listener: handleEnumElement({, null)
listener: handleEnumElements(;, 1)
notEofOrValue(}, String)
parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Enum, E)
+3 -2
View File
@@ -590,9 +590,10 @@ class ParserTestListener implements Listener {
}
@override
void handleEnumElement(Token beginToken) {
void handleEnumElement(Token beginToken, Token? augmentToken) {
seen(beginToken);
doPrint('handleEnumElement(' '$beginToken)');
seen(augmentToken);
doPrint('handleEnumElement(' '$beginToken, ' '$augmentToken)');
}
@override