From 4bb644ce3e6b78d4b3eb55844c25afcfe4a06d24 Mon Sep 17 00:00:00 2001 From: Konstantin Shcheglov Date: Wed, 17 Apr 2024 15:26:31 +0000 Subject: [PATCH] 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 Reviewed-by: Brian Wilkerson Commit-Queue: Konstantin Shcheglov --- .../lib/src/parser/forwarding_listener.dart | 4 +- .../lib/src/parser/listener.dart | 2 +- .../lib/src/parser/parser_impl.dart | 23 ++- .../fix/add_enum_constant_test.dart | 6 +- pkg/analyzer/lib/src/dart/ast/ast.dart | 11 +- pkg/analyzer/lib/src/fasta/ast_builder.dart | 4 +- pkg/analyzer/lib/src/generated/parser.dart | 7 +- .../test/generated/parser_fasta_listener.dart | 4 +- .../test/generated/parser_test_base.dart | 7 +- .../test/src/dart/parser/enum_test.dart | 139 +++++++++++++++++- pkg/analyzer/tool/summary/mini_ast.dart | 2 +- .../fasta/kernel/macro/annotation_parser.dart | 2 +- .../lib/src/fasta/source/diet_listener.dart | 2 +- .../lib/src/fasta/source/outline_builder.dart | 2 +- .../lib/src/fasta/util/parser_ast_helper.dart | 11 +- .../entries_with_type_arguments.dart.expect | 6 +- ...ith_type_arguments.dart.intertwined.expect | 6 +- .../invalid_enum_modifiers.dart.expect | 8 +- ...lid_enum_modifiers.dart.intertwined.expect | 8 +- .../error_recovery/issue_48371.dart.expect | 30 ++-- .../issue_48371.dart.intertwined.expect | 30 ++-- .../error_recovery/issue_48380_1.dart.expect | 2 +- .../issue_48380_1.dart.intertwined.expect | 2 +- .../issue_48380_1_comma.dart.expect | 4 +- ...ssue_48380_1_comma.dart.intertwined.expect | 4 +- .../issue_48380_1_comma_ok.dart.expect | 4 +- ...e_48380_1_comma_ok.dart.intertwined.expect | 4 +- .../issue_48380_1_ok.dart.expect | 2 +- .../issue_48380_1_ok.dart.intertwined.expect | 2 +- .../error_recovery/issue_48380_2.dart.expect | 2 +- .../issue_48380_2.dart.intertwined.expect | 2 +- .../issue_48380_2_comma.dart.expect | 4 +- ...ssue_48380_2_comma.dart.intertwined.expect | 4 +- .../issue_48380_2_comma_ok.dart.expect | 4 +- ...e_48380_2_comma_ok.dart.intertwined.expect | 4 +- .../issue_48380_2_ok.dart.expect | 2 +- .../issue_48380_2_ok.dart.intertwined.expect | 2 +- .../error_recovery/issue_48380_3.dart.expect | 2 +- .../issue_48380_3.dart.intertwined.expect | 2 +- .../issue_48380_3_comma.dart.expect | 4 +- ...ssue_48380_3_comma.dart.intertwined.expect | 4 +- .../issue_48380_3_comma_ok.dart.expect | 4 +- ...e_48380_3_comma_ok.dart.intertwined.expect | 4 +- .../issue_48380_3_ok.dart.expect | 2 +- .../issue_48380_3_ok.dart.intertwined.expect | 2 +- .../error_recovery/issue_48380_4.dart.expect | 2 +- .../issue_48380_4.dart.intertwined.expect | 2 +- pkg/front_end/test/parser_test_listener.dart | 5 +- 48 files changed, 279 insertions(+), 116 deletions(-) diff --git a/pkg/_fe_analyzer_shared/lib/src/parser/forwarding_listener.dart b/pkg/_fe_analyzer_shared/lib/src/parser/forwarding_listener.dart index 9c4faeb1801..43fd53370df 100644 --- a/pkg/_fe_analyzer_shared/lib/src/parser/forwarding_listener.dart +++ b/pkg/_fe_analyzer_shared/lib/src/parser/forwarding_listener.dart @@ -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 diff --git a/pkg/_fe_analyzer_shared/lib/src/parser/listener.dart b/pkg/_fe_analyzer_shared/lib/src/parser/listener.dart index 77ca3ab8ccb..4259ec0da75 100644 --- a/pkg/_fe_analyzer_shared/lib/src/parser/listener.dart +++ b/pkg/_fe_analyzer_shared/lib/src/parser/listener.dart @@ -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"); } diff --git a/pkg/_fe_analyzer_shared/lib/src/parser/parser_impl.dart b/pkg/_fe_analyzer_shared/lib/src/parser/parser_impl.dart index a16bddb4231..e37bd9d227f 100644 --- a/pkg/_fe_analyzer_shared/lib/src/parser/parser_impl.dart +++ b/pkg/_fe_analyzer_shared/lib/src/parser/parser_impl.dart @@ -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; } diff --git a/pkg/analysis_server/test/src/services/correction/fix/add_enum_constant_test.dart b/pkg/analysis_server/test/src/services/correction/fix/add_enum_constant_test.dart index ea3ee0b9dc3..7971cb5ca84 100644 --- a/pkg/analysis_server/test/src/services/correction/fix/add_enum_constant_test.dart +++ b/pkg/analysis_server/test/src/services/correction/fix/add_enum_constant_test.dart @@ -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 test_unnamed() async { diff --git a/pkg/analyzer/lib/src/dart/ast/ast.dart b/pkg/analyzer/lib/src/dart/ast/ast.dart index f913d7cac5e..8e29491f851 100644 --- a/pkg/analyzer/lib/src/dart/ast/ast.dart +++ b/pkg/analyzer/lib/src/dart/ast/ast.dart @@ -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); diff --git a/pkg/analyzer/lib/src/fasta/ast_builder.dart b/pkg/analyzer/lib/src/fasta/ast_builder.dart index ccf32fd5eba..32bc385f57e 100644 --- a/pkg/analyzer/lib/src/fasta/ast_builder.dart +++ b/pkg/analyzer/lib/src/fasta/ast_builder.dart @@ -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, ), diff --git a/pkg/analyzer/lib/src/generated/parser.dart b/pkg/analyzer/lib/src/generated/parser.dart index 0ac49ee5c48..3c47906974e 100644 --- a/pkg/analyzer/lib/src/generated/parser.dart +++ b/pkg/analyzer/lib/src/generated/parser.dart @@ -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; } diff --git a/pkg/analyzer/test/generated/parser_fasta_listener.dart b/pkg/analyzer/test/generated/parser_fasta_listener.dart index 632226b0e2c..c2deb49fee4 100644 --- a/pkg/analyzer/test/generated/parser_fasta_listener.dart +++ b/pkg/analyzer/test/generated/parser_fasta_listener.dart @@ -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 diff --git a/pkg/analyzer/test/generated/parser_test_base.dart b/pkg/analyzer/test/generated/parser_test_base.dart index 823b703a7d1..f8c8e4c18aa 100644 --- a/pkg/analyzer/test/generated/parser_test_base.dart +++ b/pkg/analyzer/test/generated/parser_test_base.dart @@ -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); diff --git a/pkg/analyzer/test/src/dart/parser/enum_test.dart b/pkg/analyzer/test/src/dart/parser/enum_test.dart index 131f8571092..06f84346d40 100644 --- a/pkg/analyzer/test/src/dart/parser/enum_test.dart +++ b/pkg/analyzer/test/src/dart/parser/enum_test.dart @@ -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: } '''); } diff --git a/pkg/analyzer/tool/summary/mini_ast.dart b/pkg/analyzer/tool/summary/mini_ast.dart index e445d5ad19c..21b41c07dbb 100644 --- a/pkg/analyzer/tool/summary/mini_ast.dart +++ b/pkg/analyzer/tool/summary/mini_ast.dart @@ -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. diff --git a/pkg/front_end/lib/src/fasta/kernel/macro/annotation_parser.dart b/pkg/front_end/lib/src/fasta/kernel/macro/annotation_parser.dart index d600e716e1b..3c5ff68f31d 100644 --- a/pkg/front_end/lib/src/fasta/kernel/macro/annotation_parser.dart +++ b/pkg/front_end/lib/src/fasta/kernel/macro/annotation_parser.dart @@ -1758,7 +1758,7 @@ class _MacroListener implements Listener { } @override - void handleEnumElement(Token beginToken) { + void handleEnumElement(Token beginToken, Token? augmentToken) { _unexpected(); } diff --git a/pkg/front_end/lib/src/fasta/source/diet_listener.dart b/pkg/front_end/lib/src/fasta/source/diet_listener.dart index 90c22893a44..e42809064b5 100644 --- a/pkg/front_end/lib/src/fasta/source/diet_listener.dart +++ b/pkg/front_end/lib/src/fasta/source/diet_listener.dart @@ -1132,7 +1132,7 @@ class DietListener extends StackListenerImpl { } @override - void handleEnumElement(Token beginKeyword) { + void handleEnumElement(Token beginKeyword, Token? augmentToken) { debugEvent("EnumElement"); } diff --git a/pkg/front_end/lib/src/fasta/source/outline_builder.dart b/pkg/front_end/lib/src/fasta/source/outline_builder.dart index 582c606aa87..ee61116fd9f 100644 --- a/pkg/front_end/lib/src/fasta/source/outline_builder.dart +++ b/pkg/front_end/lib/src/fasta/source/outline_builder.dart @@ -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, diff --git a/pkg/front_end/lib/src/fasta/util/parser_ast_helper.dart b/pkg/front_end/lib/src/fasta/util/parser_ast_helper.dart index b48ac31a548..8b92e3d1686 100644 --- a/pkg/front_end/lib/src/fasta/util/parser_ast_helper.dart +++ b/pkg/front_end/lib/src/fasta/util/parser_ast_helper.dart @@ -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 get deprecatedArguments => { "beginToken": beginToken, + "augmentToken": augmentToken, }; } diff --git a/pkg/front_end/parser_testcases/enhanced_enums/entries_with_type_arguments.dart.expect b/pkg/front_end/parser_testcases/enhanced_enums/entries_with_type_arguments.dart.expect index 166a96493a9..759b57ba85f 100644 --- a/pkg/front_end/parser_testcases/enhanced_enums/entries_with_type_arguments.dart.expect +++ b/pkg/front_end/parser_testcases/enhanced_enums/entries_with_type_arguments.dart.expect @@ -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) diff --git a/pkg/front_end/parser_testcases/enhanced_enums/entries_with_type_arguments.dart.intertwined.expect b/pkg/front_end/parser_testcases/enhanced_enums/entries_with_type_arguments.dart.intertwined.expect index e034de0566b..b60373f6983 100644 --- a/pkg/front_end/parser_testcases/enhanced_enums/entries_with_type_arguments.dart.intertwined.expect +++ b/pkg/front_end/parser_testcases/enhanced_enums/entries_with_type_arguments.dart.intertwined.expect @@ -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) diff --git a/pkg/front_end/parser_testcases/error_recovery/invalid_enum_modifiers.dart.expect b/pkg/front_end/parser_testcases/error_recovery/invalid_enum_modifiers.dart.expect index 2f394fa210c..49604928c66 100644 --- a/pkg/front_end/parser_testcases/error_recovery/invalid_enum_modifiers.dart.expect +++ b/pkg/front_end/parser_testcases/error_recovery/invalid_enum_modifiers.dart.expect @@ -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() diff --git a/pkg/front_end/parser_testcases/error_recovery/invalid_enum_modifiers.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/invalid_enum_modifiers.dart.intertwined.expect index 16caecb8d23..829e9db9287 100644 --- a/pkg/front_end/parser_testcases/error_recovery/invalid_enum_modifiers.dart.intertwined.expect +++ b/pkg/front_end/parser_testcases/error_recovery/invalid_enum_modifiers.dart.intertwined.expect @@ -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() diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48371.dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48371.dart.expect index 01393ccc10b..5415b9c64fd 100644 --- a/pkg/front_end/parser_testcases/error_recovery/issue_48371.dart.expect +++ b/pkg/front_end/parser_testcases/error_recovery/issue_48371.dart.expect @@ -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() diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48371.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48371.dart.intertwined.expect index e872dfa8041..0474037c9d4 100644 --- a/pkg/front_end/parser_testcases/error_recovery/issue_48371.dart.intertwined.expect +++ b/pkg/front_end/parser_testcases/error_recovery/issue_48371.dart.intertwined.expect @@ -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() diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48380_1.dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48380_1.dart.expect index 92a2c537a8b..8f0facc8c58 100644 --- a/pkg/front_end/parser_testcases/error_recovery/issue_48380_1.dart.expect +++ b/pkg/front_end/parser_testcases/error_recovery/issue_48380_1.dart.expect @@ -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) diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48380_1.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48380_1.dart.intertwined.expect index 148a24c3534..ad9a141ceef 100644 --- a/pkg/front_end/parser_testcases/error_recovery/issue_48380_1.dart.intertwined.expect +++ b/pkg/front_end/parser_testcases/error_recovery/issue_48380_1.dart.intertwined.expect @@ -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) diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48380_1_comma.dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48380_1_comma.dart.expect index 797ab296ceb..32ccffbd900 100644 --- a/pkg/front_end/parser_testcases/error_recovery/issue_48380_1_comma.dart.expect +++ b/pkg/front_end/parser_testcases/error_recovery/issue_48380_1_comma.dart.expect @@ -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) diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48380_1_comma.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48380_1_comma.dart.intertwined.expect index fcbdc40fa21..97aedfaa4cc 100644 --- a/pkg/front_end/parser_testcases/error_recovery/issue_48380_1_comma.dart.intertwined.expect +++ b/pkg/front_end/parser_testcases/error_recovery/issue_48380_1_comma.dart.intertwined.expect @@ -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) diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48380_1_comma_ok.dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48380_1_comma_ok.dart.expect index 45de7ffbce6..52421beb634 100644 --- a/pkg/front_end/parser_testcases/error_recovery/issue_48380_1_comma_ok.dart.expect +++ b/pkg/front_end/parser_testcases/error_recovery/issue_48380_1_comma_ok.dart.expect @@ -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) diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48380_1_comma_ok.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48380_1_comma_ok.dart.intertwined.expect index 622b7b7e6d7..398eab70dac 100644 --- a/pkg/front_end/parser_testcases/error_recovery/issue_48380_1_comma_ok.dart.intertwined.expect +++ b/pkg/front_end/parser_testcases/error_recovery/issue_48380_1_comma_ok.dart.intertwined.expect @@ -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) diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48380_1_ok.dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48380_1_ok.dart.expect index 793111a79b6..ee09abe1b3b 100644 --- a/pkg/front_end/parser_testcases/error_recovery/issue_48380_1_ok.dart.expect +++ b/pkg/front_end/parser_testcases/error_recovery/issue_48380_1_ok.dart.expect @@ -30,7 +30,7 @@ beginCompilationUnit(enum) endConstructorReference(v, ., (, ConstructorReferenceContext.Const) beginArguments(() endArguments(0, (, )) - handleEnumElement({) + handleEnumElement({, null) handleEnumElements(;, 1) beginMetadataStar(const) endMetadataStar(0) diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48380_1_ok.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48380_1_ok.dart.intertwined.expect index 0fb56b33506..5e98c189d90 100644 --- a/pkg/front_end/parser_testcases/error_recovery/issue_48380_1_ok.dart.intertwined.expect +++ b/pkg/front_end/parser_testcases/error_recovery/issue_48380_1_ok.dart.intertwined.expect @@ -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) diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48380_2.dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48380_2.dart.expect index 5707e49133b..39229b0003f 100644 --- a/pkg/front_end/parser_testcases/error_recovery/issue_48380_2.dart.expect +++ b/pkg/front_end/parser_testcases/error_recovery/issue_48380_2.dart.expect @@ -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) diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48380_2.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48380_2.dart.intertwined.expect index 29d1f97da87..ac8110de1fb 100644 --- a/pkg/front_end/parser_testcases/error_recovery/issue_48380_2.dart.intertwined.expect +++ b/pkg/front_end/parser_testcases/error_recovery/issue_48380_2.dart.intertwined.expect @@ -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) diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48380_2_comma.dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48380_2_comma.dart.expect index dee48c0c7eb..30f8a41325d 100644 --- a/pkg/front_end/parser_testcases/error_recovery/issue_48380_2_comma.dart.expect +++ b/pkg/front_end/parser_testcases/error_recovery/issue_48380_2_comma.dart.expect @@ -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) diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48380_2_comma.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48380_2_comma.dart.intertwined.expect index 48adb88e19d..5a57db8f2e5 100644 --- a/pkg/front_end/parser_testcases/error_recovery/issue_48380_2_comma.dart.intertwined.expect +++ b/pkg/front_end/parser_testcases/error_recovery/issue_48380_2_comma.dart.intertwined.expect @@ -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) diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48380_2_comma_ok.dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48380_2_comma_ok.dart.expect index 982eb8bbaf4..7dfdf49df5d 100644 --- a/pkg/front_end/parser_testcases/error_recovery/issue_48380_2_comma_ok.dart.expect +++ b/pkg/front_end/parser_testcases/error_recovery/issue_48380_2_comma_ok.dart.expect @@ -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) diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48380_2_comma_ok.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48380_2_comma_ok.dart.intertwined.expect index a9664ff8d46..77722aa05ca 100644 --- a/pkg/front_end/parser_testcases/error_recovery/issue_48380_2_comma_ok.dart.intertwined.expect +++ b/pkg/front_end/parser_testcases/error_recovery/issue_48380_2_comma_ok.dart.intertwined.expect @@ -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) diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48380_2_ok.dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48380_2_ok.dart.expect index 3283ddc9db5..38ef2b880b6 100644 --- a/pkg/front_end/parser_testcases/error_recovery/issue_48380_2_ok.dart.expect +++ b/pkg/front_end/parser_testcases/error_recovery/issue_48380_2_ok.dart.expect @@ -30,7 +30,7 @@ beginCompilationUnit(enum) endConstructorReference(v, null, (, ConstructorReferenceContext.Const) beginArguments(() endArguments(0, (, )) - handleEnumElement({) + handleEnumElement({, null) handleEnumElements(;, 1) beginMetadataStar(const) endMetadataStar(0) diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48380_2_ok.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48380_2_ok.dart.intertwined.expect index 49e52def52a..68a00c8cacb 100644 --- a/pkg/front_end/parser_testcases/error_recovery/issue_48380_2_ok.dart.intertwined.expect +++ b/pkg/front_end/parser_testcases/error_recovery/issue_48380_2_ok.dart.intertwined.expect @@ -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) diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48380_3.dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48380_3.dart.expect index 9d4bf5d08a1..0e7a0620a4d 100644 --- a/pkg/front_end/parser_testcases/error_recovery/issue_48380_3.dart.expect +++ b/pkg/front_end/parser_testcases/error_recovery/issue_48380_3.dart.expect @@ -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) diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48380_3.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48380_3.dart.intertwined.expect index fc010a2300e..f39636a00f6 100644 --- a/pkg/front_end/parser_testcases/error_recovery/issue_48380_3.dart.intertwined.expect +++ b/pkg/front_end/parser_testcases/error_recovery/issue_48380_3.dart.intertwined.expect @@ -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) diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48380_3_comma.dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48380_3_comma.dart.expect index 6030d7a715d..c2f339ca510 100644 --- a/pkg/front_end/parser_testcases/error_recovery/issue_48380_3_comma.dart.expect +++ b/pkg/front_end/parser_testcases/error_recovery/issue_48380_3_comma.dart.expect @@ -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) diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48380_3_comma.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48380_3_comma.dart.intertwined.expect index 10441a42311..8f8feb8a120 100644 --- a/pkg/front_end/parser_testcases/error_recovery/issue_48380_3_comma.dart.intertwined.expect +++ b/pkg/front_end/parser_testcases/error_recovery/issue_48380_3_comma.dart.intertwined.expect @@ -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) diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48380_3_comma_ok.dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48380_3_comma_ok.dart.expect index 22802d6ff19..0072d685d3e 100644 --- a/pkg/front_end/parser_testcases/error_recovery/issue_48380_3_comma_ok.dart.expect +++ b/pkg/front_end/parser_testcases/error_recovery/issue_48380_3_comma_ok.dart.expect @@ -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) diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48380_3_comma_ok.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48380_3_comma_ok.dart.intertwined.expect index 54fe9bc1de6..2d988dc0a34 100644 --- a/pkg/front_end/parser_testcases/error_recovery/issue_48380_3_comma_ok.dart.intertwined.expect +++ b/pkg/front_end/parser_testcases/error_recovery/issue_48380_3_comma_ok.dart.intertwined.expect @@ -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) diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48380_3_ok.dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48380_3_ok.dart.expect index 7728c0cf29c..8ade4fa64ce 100644 --- a/pkg/front_end/parser_testcases/error_recovery/issue_48380_3_ok.dart.expect +++ b/pkg/front_end/parser_testcases/error_recovery/issue_48380_3_ok.dart.expect @@ -18,7 +18,7 @@ beginCompilationUnit(enum) endConstructorReference(v, ., (, ConstructorReferenceContext.Const) beginArguments(() endArguments(0, (, )) - handleEnumElement({) + handleEnumElement({, null) handleEnumElements(;, 1) beginMetadataStar(const) endMetadataStar(0) diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48380_3_ok.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48380_3_ok.dart.intertwined.expect index 2d5d20550ee..c12dfce330a 100644 --- a/pkg/front_end/parser_testcases/error_recovery/issue_48380_3_ok.dart.intertwined.expect +++ b/pkg/front_end/parser_testcases/error_recovery/issue_48380_3_ok.dart.intertwined.expect @@ -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) diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48380_4.dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48380_4.dart.expect index cdfc777aba1..1bc61321909 100644 --- a/pkg/front_end/parser_testcases/error_recovery/issue_48380_4.dart.expect +++ b/pkg/front_end/parser_testcases/error_recovery/issue_48380_4.dart.expect @@ -17,7 +17,7 @@ beginCompilationUnit(enum) handleNoConstructorReferenceContinuationAfterTypeArguments(;) endConstructorReference(x, null, ;, ConstructorReferenceContext.Const) handleNoArguments(x) - handleEnumElement({) + handleEnumElement({, null) handleEnumElements(;, 1) beginMetadataStar(String) endMetadataStar(0) diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48380_4.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48380_4.dart.intertwined.expect index c6c340c6087..6d98d04958f 100644 --- a/pkg/front_end/parser_testcases/error_recovery/issue_48380_4.dart.intertwined.expect +++ b/pkg/front_end/parser_testcases/error_recovery/issue_48380_4.dart.intertwined.expect @@ -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) diff --git a/pkg/front_end/test/parser_test_listener.dart b/pkg/front_end/test/parser_test_listener.dart index 2745d5ed65a..981e1b68603 100644 --- a/pkg/front_end/test/parser_test_listener.dart +++ b/pkg/front_end/test/parser_test_listener.dart @@ -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