Add support for `augment external` and report error for `external augment`. Change-Id: Ib08dca53ec6f21f9a1b558d326f3b1289a991848 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/517941 Commit-Queue: Konstantin Shcheglov <scheglov@google.com> Reviewed-by: Johnni Winther <johnniwinther@google.com> Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
diff --git a/pkg/_fe_analyzer_shared/lib/src/parser/modifier_context.dart b/pkg/_fe_analyzer_shared/lib/src/parser/modifier_context.dart index 5d96d95..2580898 100644 --- a/pkg/_fe_analyzer_shared/lib/src/parser/modifier_context.dart +++ b/pkg/_fe_analyzer_shared/lib/src/parser/modifier_context.dart
@@ -428,7 +428,7 @@ } else if (staticToken != null) { reportModifierOutOfOrder(next, staticToken!.lexeme); } else if (externalToken != null) { - reportConflictingModifiers(next, externalToken!); + reportModifierOutOfOrder(next, externalToken!.lexeme); } return next; } @@ -519,8 +519,6 @@ reportModifierOutOfOrder(next, varFinalOrConst!.lexeme); } else if (covariantToken != null) { reportModifierOutOfOrder(next, covariantToken!.lexeme); - } else if (augmentToken != null) { - reportConflictingModifiers(next, augmentToken!); } return next; }
diff --git a/pkg/analyzer/test/src/dart/parser/class_test.dart b/pkg/analyzer/test/src/dart/parser/class_test.dart index 9fc9d41..18c5795 100644 --- a/pkg/analyzer/test/src/dart/parser/class_test.dart +++ b/pkg/analyzer/test/src/dart/parser/class_test.dart
@@ -1822,6 +1822,29 @@ '''); } + test_method_augment_external() { + var parseResult = parseTestCodeWithDiagnostics(r''' +augment class A { + augment external void foo(); +} +'''); + + var node = parseResult.findNode.singleMethodDeclaration; + assertParsedNodeText(node, r''' +MethodDeclaration + augmentKeyword: augment + externalKeyword: external + returnType: NamedType + name: void + name: foo + parameters: FormalParameterList + leftParenthesis: ( + rightParenthesis: ) + body: EmptyFunctionBody + semicolon: ; +'''); + } + test_method_augment_static() { var parseResult = parseTestCodeWithDiagnostics(r''' augment class A {
diff --git a/pkg/analyzer/test/src/dart/parser/top_level_function_test.dart b/pkg/analyzer/test/src/dart/parser/top_level_function_test.dart index 7198fca..6ff5d78 100644 --- a/pkg/analyzer/test/src/dart/parser/top_level_function_test.dart +++ b/pkg/analyzer/test/src/dart/parser/top_level_function_test.dart
@@ -107,6 +107,28 @@ '''); } + test_function_augment_external() { + var parseResult = parseTestCodeWithDiagnostics(r''' +augment external void foo(); +'''); + + var node = parseResult.findNode.singleFunctionDeclaration; + assertParsedNodeText(node, r''' +FunctionDeclaration + augmentKeyword: augment + externalKeyword: external + returnType: NamedType + name: void + name: foo + functionExpression: FunctionExpression + parameters: FormalParameterList + leftParenthesis: ( + rightParenthesis: ) + body: EmptyFunctionBody + semicolon: ; +'''); + } + test_function_augment_language305() { var parseResult = parseTestCodeWithDiagnostics(''' // @dart = 3.5 @@ -175,6 +197,30 @@ '''); } + test_function_external_augment() { + var parseResult = parseTestCodeWithDiagnostics(r''' +external augment void foo(); +// ^^^^^^^ +// [diag.modifierOutOfOrder] The modifier 'augment' should be before the modifier 'external'. +'''); + + var node = parseResult.findNode.singleFunctionDeclaration; + assertParsedNodeText(node, r''' +FunctionDeclaration + augmentKeyword: augment + externalKeyword: external + returnType: NamedType + name: void + name: foo + functionExpression: FunctionExpression + parameters: FormalParameterList + leftParenthesis: ( + rightParenthesis: ) + body: EmptyFunctionBody + semicolon: ; +'''); + } + test_getter_abstract() { var parseResult = parseTestCodeWithDiagnostics(r''' abstract int get foo {} @@ -259,6 +305,26 @@ '''); } + test_getter_augment_external() { + var parseResult = parseTestCodeWithDiagnostics(r''' +augment external int get foo; +'''); + + var node = parseResult.findNode.singleFunctionDeclaration; + assertParsedNodeText(node, r''' +FunctionDeclaration + augmentKeyword: augment + externalKeyword: external + returnType: NamedType + name: int + propertyKeyword: get + name: foo + functionExpression: FunctionExpression + body: EmptyFunctionBody + semicolon: ; +'''); + } + test_getter_augment_language305() { var parseResult = parseTestCodeWithDiagnostics(''' // @dart = 3.5 @@ -484,6 +550,31 @@ '''); } + test_setter_augment_external() { + var parseResult = parseTestCodeWithDiagnostics(r''' +augment external set foo(int _); +'''); + + var node = parseResult.findNode.singleFunctionDeclaration; + assertParsedNodeText(node, r''' +FunctionDeclaration + augmentKeyword: augment + externalKeyword: external + propertyKeyword: set + name: foo + functionExpression: FunctionExpression + parameters: FormalParameterList + leftParenthesis: ( + parameter: RegularFormalParameter + type: NamedType + name: int + name: _ + rightParenthesis: ) + body: EmptyFunctionBody + semicolon: ; +'''); + } + test_setter_augment_language305() { var parseResult = parseTestCodeWithDiagnostics(''' // @dart = 3.5
diff --git a/pkg/analyzer/test/src/dart/parser/top_level_variable_test.dart b/pkg/analyzer/test/src/dart/parser/top_level_variable_test.dart index 1851ee5..1d9105b 100644 --- a/pkg/analyzer/test/src/dart/parser/top_level_variable_test.dart +++ b/pkg/analyzer/test/src/dart/parser/top_level_variable_test.dart
@@ -128,6 +128,26 @@ '''); } + test_augment_external() { + var parseResult = parseTestCodeWithDiagnostics(r''' +augment external int foo; +'''); + + var node = parseResult.findNode.singleTopLevelVariableDeclaration; + assertParsedNodeText(node, r''' +TopLevelVariableDeclaration + augmentKeyword: augment + externalKeyword: external + variables: VariableDeclarationList + type: NamedType + name: int + variables + VariableDeclaration + name: foo + semicolon: ; +'''); + } + test_augment_language305() { var parseResult = parseTestCodeWithDiagnostics(''' // @dart = 3.5
diff --git a/pkg/analyzer/test/src/diagnostics/deprecated_factory_method_test.dart b/pkg/analyzer/test/src/diagnostics/deprecated_factory_method_test.dart index 9feefaf..c2fc2e0 100644 --- a/pkg/analyzer/test/src/diagnostics/deprecated_factory_method_test.dart +++ b/pkg/analyzer/test/src/diagnostics/deprecated_factory_method_test.dart
@@ -81,15 +81,11 @@ } test_withModifier_augmentAndExternal_after() async { - // TODO(brianwilkerson): The `conflictingModifiers` diagnostic should not - // be produced here. await resolveTestCodeWithDiagnostics(r''' class C { augment external factory(); //^^^^^^^ // [diag.augmentationWithoutDeclaration] The declaration being augmented doesn't exist. -// ^^^^^^^^ -// [diag.conflictingModifiers] Members can't be declared to be both 'external' and 'augment'. } '''); }
diff --git a/pkg/front_end/parser_testcases/augmentation/member_errors.dart.expect b/pkg/front_end/parser_testcases/augmentation/member_errors.dart.expect index 53576d7..c4b3e73 100644 --- a/pkg/front_end/parser_testcases/augmentation/member_errors.dart.expect +++ b/pkg/front_end/parser_testcases/augmentation/member_errors.dart.expect
@@ -4,11 +4,7 @@ augment augment method() {} ^^^^^^^ -parser/augmentation/member_errors:3:11: Members can't be declared to be both 'external' and 'augment'. - augment external method(); - ^^^^^^^^ - -parser/augmentation/member_errors:4:12: Members can't be declared to be both 'augment' and 'external'. +parser/augmentation/member_errors:4:12: The modifier 'augment' should be before the modifier 'external'. external augment method(); ^^^^^^^ @@ -16,11 +12,7 @@ augment augment void method() {} ^^^^^^^ -parser/augmentation/member_errors:7:11: Members can't be declared to be both 'external' and 'augment'. - augment external void method(); - ^^^^^^^^ - -parser/augmentation/member_errors:8:12: Members can't be declared to be both 'augment' and 'external'. +parser/augmentation/member_errors:8:12: The modifier 'augment' should be before the modifier 'external'. external augment void method(); ^^^^^^^ @@ -28,11 +20,7 @@ augment augment get getter => null; ^^^^^^^ -parser/augmentation/member_errors:11:11: Members can't be declared to be both 'external' and 'augment'. - augment external get getter; - ^^^^^^^^ - -parser/augmentation/member_errors:12:12: Members can't be declared to be both 'augment' and 'external'. +parser/augmentation/member_errors:12:12: The modifier 'augment' should be before the modifier 'external'. external augment get getter; ^^^^^^^ @@ -40,11 +28,7 @@ augment augment int get getter => 0; ^^^^^^^ -parser/augmentation/member_errors:15:11: Members can't be declared to be both 'external' and 'augment'. - augment external int get getter; - ^^^^^^^^ - -parser/augmentation/member_errors:16:12: Members can't be declared to be both 'augment' and 'external'. +parser/augmentation/member_errors:16:12: The modifier 'augment' should be before the modifier 'external'. external augment int get getter; ^^^^^^^ @@ -52,11 +36,7 @@ augment augment set setter(value) {} ^^^^^^^ -parser/augmentation/member_errors:19:11: Members can't be declared to be both 'external' and 'augment'. - augment external set setter(value); - ^^^^^^^^ - -parser/augmentation/member_errors:20:12: Members can't be declared to be both 'augment' and 'external'. +parser/augmentation/member_errors:20:12: The modifier 'augment' should be before the modifier 'external'. external augment set setter(value); ^^^^^^^ @@ -64,11 +44,7 @@ augment augment void set setter(value) {} ^^^^^^^ -parser/augmentation/member_errors:23:11: Members can't be declared to be both 'external' and 'augment'. - augment external void set setter(value); - ^^^^^^^^ - -parser/augmentation/member_errors:24:12: Members can't be declared to be both 'augment' and 'external'. +parser/augmentation/member_errors:24:12: The modifier 'augment' should be before the modifier 'external'. external augment void set setter(value); ^^^^^^^ @@ -76,11 +52,7 @@ augment augment var field; ^^^^^^^ -parser/augmentation/member_errors:27:11: Members can't be declared to be both 'external' and 'augment'. - augment external var field; - ^^^^^^^^ - -parser/augmentation/member_errors:28:12: Members can't be declared to be both 'augment' and 'external'. +parser/augmentation/member_errors:28:12: The modifier 'augment' should be before the modifier 'external'. external augment var field; ^^^^^^^ @@ -88,11 +60,7 @@ augment augment final field = 0; ^^^^^^^ -parser/augmentation/member_errors:31:11: Members can't be declared to be both 'external' and 'augment'. - augment external final field; - ^^^^^^^^ - -parser/augmentation/member_errors:32:12: Members can't be declared to be both 'augment' and 'external'. +parser/augmentation/member_errors:32:12: The modifier 'augment' should be before the modifier 'external'. external augment final field; ^^^^^^^ @@ -100,15 +68,11 @@ augment augment const field = 0; ^^^^^^^ -parser/augmentation/member_errors:35:11: Members can't be declared to be both 'external' and 'augment'. - augment external const field; - ^^^^^^^^ - parser/augmentation/member_errors:35:26: The const variable 'field' must be initialized. augment external const field; ^^^^^ -parser/augmentation/member_errors:36:12: Members can't be declared to be both 'augment' and 'external'. +parser/augmentation/member_errors:36:12: The modifier 'augment' should be before the modifier 'external'. external augment const field; ^^^^^^^ @@ -120,11 +84,7 @@ augment augment int field; ^^^^^^^ -parser/augmentation/member_errors:39:11: Members can't be declared to be both 'external' and 'augment'. - augment external int field; - ^^^^^^^^ - -parser/augmentation/member_errors:40:12: Members can't be declared to be both 'augment' and 'external'. +parser/augmentation/member_errors:40:12: The modifier 'augment' should be before the modifier 'external'. external augment int field; ^^^^^^^ @@ -276,7 +236,6 @@ endMember() beginMetadataStar(augment) endMetadataStar(0) - handleRecoverableError(Message[Template(ConflictingModifiers), Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {modifier: external, earlierModifier: augment}], external, external) beginMember() beginMethod(DeclarationKind.Class, augment, external, null, null, null, null, method, Class) handleNoType(external) @@ -291,7 +250,7 @@ endMember() beginMetadataStar(external) endMetadataStar(0) - handleRecoverableError(Message[Template(ConflictingModifiers), Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {modifier: augment, earlierModifier: external}], augment, augment) + handleRecoverableError(Message[Template(ModifierOutOfOrder), The modifier 'augment' should be before the modifier 'external'., Try re-ordering the modifiers., {modifier: augment, expectedLaterModifier: external}], augment, augment) beginMember() beginMethod(DeclarationKind.Class, null, external, null, null, null, null, method, Class) handleNoType(augment) @@ -322,7 +281,6 @@ endMember() beginMetadataStar(augment) endMetadataStar(0) - handleRecoverableError(Message[Template(ConflictingModifiers), Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {modifier: external, earlierModifier: augment}], external, external) beginMember() beginMethod(DeclarationKind.Class, augment, external, null, null, null, null, method, Class) handleVoidKeyword(void) @@ -337,7 +295,7 @@ endMember() beginMetadataStar(external) endMetadataStar(0) - handleRecoverableError(Message[Template(ConflictingModifiers), Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {modifier: augment, earlierModifier: external}], augment, augment) + handleRecoverableError(Message[Template(ModifierOutOfOrder), The modifier 'augment' should be before the modifier 'external'., Try re-ordering the modifiers., {modifier: augment, expectedLaterModifier: external}], augment, augment) beginMember() beginMethod(DeclarationKind.Class, null, external, null, null, null, null, method, Class) handleVoidKeyword(void) @@ -367,7 +325,6 @@ endMember() beginMetadataStar(augment) endMetadataStar(0) - handleRecoverableError(Message[Template(ConflictingModifiers), Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {modifier: external, earlierModifier: augment}], external, external) beginMember() beginMethod(DeclarationKind.Class, augment, external, null, null, null, get, getter, Class) handleNoType(external) @@ -381,7 +338,7 @@ endMember() beginMetadataStar(external) endMetadataStar(0) - handleRecoverableError(Message[Template(ConflictingModifiers), Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {modifier: augment, earlierModifier: external}], augment, augment) + handleRecoverableError(Message[Template(ModifierOutOfOrder), The modifier 'augment' should be before the modifier 'external'., Try re-ordering the modifiers., {modifier: augment, expectedLaterModifier: external}], augment, augment) beginMember() beginMethod(DeclarationKind.Class, null, external, null, null, null, get, getter, Class) handleNoType(augment) @@ -412,7 +369,6 @@ endMember() beginMetadataStar(augment) endMetadataStar(0) - handleRecoverableError(Message[Template(ConflictingModifiers), Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {modifier: external, earlierModifier: augment}], external, external) beginMember() beginMethod(DeclarationKind.Class, augment, external, null, null, null, get, getter, Class) handleIdentifier(int, typeReference) @@ -428,7 +384,7 @@ endMember() beginMetadataStar(external) endMetadataStar(0) - handleRecoverableError(Message[Template(ConflictingModifiers), Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {modifier: augment, earlierModifier: external}], augment, augment) + handleRecoverableError(Message[Template(ModifierOutOfOrder), The modifier 'augment' should be before the modifier 'external'., Try re-ordering the modifiers., {modifier: augment, expectedLaterModifier: external}], augment, augment) beginMember() beginMethod(DeclarationKind.Class, null, external, null, null, null, get, getter, Class) handleIdentifier(int, typeReference) @@ -467,7 +423,6 @@ endMember() beginMetadataStar(augment) endMetadataStar(0) - handleRecoverableError(Message[Template(ConflictingModifiers), Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {modifier: external, earlierModifier: augment}], external, external) beginMember() beginMethod(DeclarationKind.Class, augment, external, null, null, null, set, setter, Class) handleNoType(external) @@ -489,7 +444,7 @@ endMember() beginMetadataStar(external) endMetadataStar(0) - handleRecoverableError(Message[Template(ConflictingModifiers), Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {modifier: augment, earlierModifier: external}], augment, augment) + handleRecoverableError(Message[Template(ModifierOutOfOrder), The modifier 'augment' should be before the modifier 'external'., Try re-ordering the modifiers., {modifier: augment, expectedLaterModifier: external}], augment, augment) beginMember() beginMethod(DeclarationKind.Class, null, external, null, null, null, set, setter, Class) handleNoType(augment) @@ -534,7 +489,6 @@ endMember() beginMetadataStar(augment) endMetadataStar(0) - handleRecoverableError(Message[Template(ConflictingModifiers), Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {modifier: external, earlierModifier: augment}], external, external) beginMember() beginMethod(DeclarationKind.Class, augment, external, null, null, null, set, setter, Class) handleVoidKeyword(void) @@ -556,7 +510,7 @@ endMember() beginMetadataStar(external) endMetadataStar(0) - handleRecoverableError(Message[Template(ConflictingModifiers), Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {modifier: augment, earlierModifier: external}], augment, augment) + handleRecoverableError(Message[Template(ModifierOutOfOrder), The modifier 'augment' should be before the modifier 'external'., Try re-ordering the modifiers., {modifier: augment, expectedLaterModifier: external}], augment, augment) beginMember() beginMethod(DeclarationKind.Class, null, external, null, null, null, set, setter, Class) handleVoidKeyword(void) @@ -588,7 +542,6 @@ endMember() beginMetadataStar(augment) endMetadataStar(0) - handleRecoverableError(Message[Template(ConflictingModifiers), Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {modifier: external, earlierModifier: augment}], external, external) beginMember() beginFields(DeclarationKind.Class, augment, null, external, null, null, null, var, ;) handleNoType(var) @@ -598,7 +551,7 @@ endMember() beginMetadataStar(external) endMetadataStar(0) - handleRecoverableError(Message[Template(ConflictingModifiers), Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {modifier: augment, earlierModifier: external}], augment, augment) + handleRecoverableError(Message[Template(ModifierOutOfOrder), The modifier 'augment' should be before the modifier 'external'., Try re-ordering the modifiers., {modifier: augment, expectedLaterModifier: external}], augment, augment) beginMember() beginFields(DeclarationKind.Class, null, null, external, null, null, null, var, ;) handleNoType(var) @@ -620,7 +573,6 @@ endMember() beginMetadataStar(augment) endMetadataStar(0) - handleRecoverableError(Message[Template(ConflictingModifiers), Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {modifier: external, earlierModifier: augment}], external, external) beginMember() beginFields(DeclarationKind.Class, augment, null, external, null, null, null, final, ;) handleNoType(final) @@ -630,7 +582,7 @@ endMember() beginMetadataStar(external) endMetadataStar(0) - handleRecoverableError(Message[Template(ConflictingModifiers), Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {modifier: augment, earlierModifier: external}], augment, augment) + handleRecoverableError(Message[Template(ModifierOutOfOrder), The modifier 'augment' should be before the modifier 'external'., Try re-ordering the modifiers., {modifier: augment, expectedLaterModifier: external}], augment, augment) beginMember() beginFields(DeclarationKind.Class, null, null, external, null, null, null, final, ;) handleNoType(final) @@ -652,7 +604,6 @@ endMember() beginMetadataStar(augment) endMetadataStar(0) - handleRecoverableError(Message[Template(ConflictingModifiers), Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {modifier: external, earlierModifier: augment}], external, external) beginMember() beginFields(DeclarationKind.Class, augment, null, external, null, null, null, const, ;) handleNoType(const) @@ -663,7 +614,7 @@ endMember() beginMetadataStar(external) endMetadataStar(0) - handleRecoverableError(Message[Template(ConflictingModifiers), Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {modifier: augment, earlierModifier: external}], augment, augment) + handleRecoverableError(Message[Template(ModifierOutOfOrder), The modifier 'augment' should be before the modifier 'external'., Try re-ordering the modifiers., {modifier: augment, expectedLaterModifier: external}], augment, augment) beginMember() beginFields(DeclarationKind.Class, null, null, external, null, null, null, const, ;) handleNoType(const) @@ -686,7 +637,6 @@ endMember() beginMetadataStar(augment) endMetadataStar(0) - handleRecoverableError(Message[Template(ConflictingModifiers), Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {modifier: external, earlierModifier: augment}], external, external) beginMember() beginFields(DeclarationKind.Class, augment, null, external, null, null, null, null, ;) handleIdentifier(int, typeReference) @@ -698,7 +648,7 @@ endMember() beginMetadataStar(external) endMetadataStar(0) - handleRecoverableError(Message[Template(ConflictingModifiers), Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {modifier: augment, earlierModifier: external}], augment, augment) + handleRecoverableError(Message[Template(ModifierOutOfOrder), The modifier 'augment' should be before the modifier 'external'., Try re-ordering the modifiers., {modifier: augment, expectedLaterModifier: external}], augment, augment) beginMember() beginFields(DeclarationKind.Class, null, null, external, null, null, null, null, ;) handleIdentifier(int, typeReference)
diff --git a/pkg/front_end/parser_testcases/augmentation/member_errors.dart.intertwined.expect b/pkg/front_end/parser_testcases/augmentation/member_errors.dart.intertwined.expect index 268080d..bb4ca75 100644 --- a/pkg/front_end/parser_testcases/augmentation/member_errors.dart.intertwined.expect +++ b/pkg/front_end/parser_testcases/augmentation/member_errors.dart.intertwined.expect
@@ -66,8 +66,6 @@ parseMetadataStar(}) listener: beginMetadataStar(augment) listener: endMetadataStar(0) - reportRecoverableError(external, Message[Template(ConflictingModifiers), Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {modifier: external, earlierModifier: augment}]) - listener: handleRecoverableError(Message[Template(ConflictingModifiers), Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {modifier: external, earlierModifier: augment}], external, external) listener: beginMember() isReservedKeyword(() parseMethod(}, null, augment, external, null, null, null, null, external, NoType(), null, null, method, DeclarationKind.Class, Class, false) @@ -98,8 +96,8 @@ parseMetadataStar(;) listener: beginMetadataStar(external) listener: endMetadataStar(0) - reportRecoverableError(augment, Message[Template(ConflictingModifiers), Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {modifier: augment, earlierModifier: external}]) - listener: handleRecoverableError(Message[Template(ConflictingModifiers), Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {modifier: augment, earlierModifier: external}], augment, augment) + reportRecoverableError(augment, Message[Template(ModifierOutOfOrder), The modifier 'augment' should be before the modifier 'external'., Try re-ordering the modifiers., {modifier: augment, expectedLaterModifier: external}]) + listener: handleRecoverableError(Message[Template(ModifierOutOfOrder), The modifier 'augment' should be before the modifier 'external'., Try re-ordering the modifiers., {modifier: augment, expectedLaterModifier: external}], augment, augment) listener: beginMember() isReservedKeyword(() parseMethod(;, null, null, external, null, null, null, null, augment, NoType(), null, null, method, DeclarationKind.Class, Class, false) @@ -163,8 +161,6 @@ parseMetadataStar(}) listener: beginMetadataStar(augment) listener: endMetadataStar(0) - reportRecoverableError(external, Message[Template(ConflictingModifiers), Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {modifier: external, earlierModifier: augment}]) - listener: handleRecoverableError(Message[Template(ConflictingModifiers), Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {modifier: external, earlierModifier: augment}], external, external) listener: beginMember() parseMethod(}, null, augment, external, null, null, null, null, external, VoidType(), null, null, method, DeclarationKind.Class, Class, false) listener: beginMethod(DeclarationKind.Class, augment, external, null, null, null, null, method, Class) @@ -194,8 +190,8 @@ parseMetadataStar(;) listener: beginMetadataStar(external) listener: endMetadataStar(0) - reportRecoverableError(augment, Message[Template(ConflictingModifiers), Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {modifier: augment, earlierModifier: external}]) - listener: handleRecoverableError(Message[Template(ConflictingModifiers), Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {modifier: augment, earlierModifier: external}], augment, augment) + reportRecoverableError(augment, Message[Template(ModifierOutOfOrder), The modifier 'augment' should be before the modifier 'external'., Try re-ordering the modifiers., {modifier: augment, expectedLaterModifier: external}]) + listener: handleRecoverableError(Message[Template(ModifierOutOfOrder), The modifier 'augment' should be before the modifier 'external'., Try re-ordering the modifiers., {modifier: augment, expectedLaterModifier: external}], augment, augment) listener: beginMember() parseMethod(;, null, null, external, null, null, null, null, augment, VoidType(), null, null, method, DeclarationKind.Class, Class, false) listener: beginMethod(DeclarationKind.Class, null, external, null, null, null, null, method, Class) @@ -264,8 +260,6 @@ parseMetadataStar(;) listener: beginMetadataStar(augment) listener: endMetadataStar(0) - reportRecoverableError(external, Message[Template(ConflictingModifiers), Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {modifier: external, earlierModifier: augment}]) - listener: handleRecoverableError(Message[Template(ConflictingModifiers), Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {modifier: external, earlierModifier: augment}], external, external) listener: beginMember() parseMethod(;, null, augment, external, null, null, null, null, external, NoType(), get, null, getter, DeclarationKind.Class, Class, false) listener: beginMethod(DeclarationKind.Class, augment, external, null, null, null, get, getter, Class) @@ -292,8 +286,8 @@ parseMetadataStar(;) listener: beginMetadataStar(external) listener: endMetadataStar(0) - reportRecoverableError(augment, Message[Template(ConflictingModifiers), Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {modifier: augment, earlierModifier: external}]) - listener: handleRecoverableError(Message[Template(ConflictingModifiers), Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {modifier: augment, earlierModifier: external}], augment, augment) + reportRecoverableError(augment, Message[Template(ModifierOutOfOrder), The modifier 'augment' should be before the modifier 'external'., Try re-ordering the modifiers., {modifier: augment, expectedLaterModifier: external}]) + listener: handleRecoverableError(Message[Template(ModifierOutOfOrder), The modifier 'augment' should be before the modifier 'external'., Try re-ordering the modifiers., {modifier: augment, expectedLaterModifier: external}], augment, augment) listener: beginMember() parseMethod(;, null, null, external, null, null, null, null, augment, NoType(), get, null, getter, DeclarationKind.Class, Class, false) listener: beginMethod(DeclarationKind.Class, null, external, null, null, null, get, getter, Class) @@ -361,8 +355,6 @@ parseMetadataStar(;) listener: beginMetadataStar(augment) listener: endMetadataStar(0) - reportRecoverableError(external, Message[Template(ConflictingModifiers), Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {modifier: external, earlierModifier: augment}]) - listener: handleRecoverableError(Message[Template(ConflictingModifiers), Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {modifier: external, earlierModifier: augment}], external, external) listener: beginMember() parseMethod(;, null, augment, external, null, null, null, null, external, SimpleType(), get, null, getter, DeclarationKind.Class, Class, false) listener: beginMethod(DeclarationKind.Class, augment, external, null, null, null, get, getter, Class) @@ -391,8 +383,8 @@ parseMetadataStar(;) listener: beginMetadataStar(external) listener: endMetadataStar(0) - reportRecoverableError(augment, Message[Template(ConflictingModifiers), Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {modifier: augment, earlierModifier: external}]) - listener: handleRecoverableError(Message[Template(ConflictingModifiers), Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {modifier: augment, earlierModifier: external}], augment, augment) + reportRecoverableError(augment, Message[Template(ModifierOutOfOrder), The modifier 'augment' should be before the modifier 'external'., Try re-ordering the modifiers., {modifier: augment, expectedLaterModifier: external}]) + listener: handleRecoverableError(Message[Template(ModifierOutOfOrder), The modifier 'augment' should be before the modifier 'external'., Try re-ordering the modifiers., {modifier: augment, expectedLaterModifier: external}], augment, augment) listener: beginMember() parseMethod(;, null, null, external, null, null, null, null, augment, SimpleType(), get, null, getter, DeclarationKind.Class, Class, false) listener: beginMethod(DeclarationKind.Class, null, external, null, null, null, get, getter, Class) @@ -464,8 +456,6 @@ parseMetadataStar(}) listener: beginMetadataStar(augment) listener: endMetadataStar(0) - reportRecoverableError(external, Message[Template(ConflictingModifiers), Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {modifier: external, earlierModifier: augment}]) - listener: handleRecoverableError(Message[Template(ConflictingModifiers), Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {modifier: external, earlierModifier: augment}], external, external) listener: beginMember() parseMethod(}, null, augment, external, null, null, null, null, external, NoType(), set, null, setter, DeclarationKind.Class, Class, false) listener: beginMethod(DeclarationKind.Class, augment, external, null, null, null, set, setter, Class) @@ -505,8 +495,8 @@ parseMetadataStar(;) listener: beginMetadataStar(external) listener: endMetadataStar(0) - reportRecoverableError(augment, Message[Template(ConflictingModifiers), Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {modifier: augment, earlierModifier: external}]) - listener: handleRecoverableError(Message[Template(ConflictingModifiers), Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {modifier: augment, earlierModifier: external}], augment, augment) + reportRecoverableError(augment, Message[Template(ModifierOutOfOrder), The modifier 'augment' should be before the modifier 'external'., Try re-ordering the modifiers., {modifier: augment, expectedLaterModifier: external}]) + listener: handleRecoverableError(Message[Template(ModifierOutOfOrder), The modifier 'augment' should be before the modifier 'external'., Try re-ordering the modifiers., {modifier: augment, expectedLaterModifier: external}], augment, augment) listener: beginMember() parseMethod(;, null, null, external, null, null, null, null, augment, NoType(), set, null, setter, DeclarationKind.Class, Class, false) listener: beginMethod(DeclarationKind.Class, null, external, null, null, null, set, setter, Class) @@ -589,8 +579,6 @@ parseMetadataStar(}) listener: beginMetadataStar(augment) listener: endMetadataStar(0) - reportRecoverableError(external, Message[Template(ConflictingModifiers), Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {modifier: external, earlierModifier: augment}]) - listener: handleRecoverableError(Message[Template(ConflictingModifiers), Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {modifier: external, earlierModifier: augment}], external, external) listener: beginMember() parseMethod(}, null, augment, external, null, null, null, null, external, VoidType(), set, null, setter, DeclarationKind.Class, Class, false) listener: beginMethod(DeclarationKind.Class, augment, external, null, null, null, set, setter, Class) @@ -630,8 +618,8 @@ parseMetadataStar(;) listener: beginMetadataStar(external) listener: endMetadataStar(0) - reportRecoverableError(augment, Message[Template(ConflictingModifiers), Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {modifier: augment, earlierModifier: external}]) - listener: handleRecoverableError(Message[Template(ConflictingModifiers), Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {modifier: augment, earlierModifier: external}], augment, augment) + reportRecoverableError(augment, Message[Template(ModifierOutOfOrder), The modifier 'augment' should be before the modifier 'external'., Try re-ordering the modifiers., {modifier: augment, expectedLaterModifier: external}]) + listener: handleRecoverableError(Message[Template(ModifierOutOfOrder), The modifier 'augment' should be before the modifier 'external'., Try re-ordering the modifiers., {modifier: augment, expectedLaterModifier: external}], augment, augment) listener: beginMember() parseMethod(;, null, null, external, null, null, null, null, augment, VoidType(), set, null, setter, DeclarationKind.Class, Class, false) listener: beginMethod(DeclarationKind.Class, null, external, null, null, null, set, setter, Class) @@ -690,8 +678,6 @@ parseMetadataStar(;) listener: beginMetadataStar(augment) listener: endMetadataStar(0) - reportRecoverableError(external, Message[Template(ConflictingModifiers), Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {modifier: external, earlierModifier: augment}]) - listener: handleRecoverableError(Message[Template(ConflictingModifiers), Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {modifier: external, earlierModifier: augment}], external, external) listener: beginMember() skipOuterPattern(var) skipObjectPatternRest(field) @@ -709,8 +695,8 @@ parseMetadataStar(;) listener: beginMetadataStar(external) listener: endMetadataStar(0) - reportRecoverableError(augment, Message[Template(ConflictingModifiers), Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {modifier: augment, earlierModifier: external}]) - listener: handleRecoverableError(Message[Template(ConflictingModifiers), Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {modifier: augment, earlierModifier: external}], augment, augment) + reportRecoverableError(augment, Message[Template(ModifierOutOfOrder), The modifier 'augment' should be before the modifier 'external'., Try re-ordering the modifiers., {modifier: augment, expectedLaterModifier: external}]) + listener: handleRecoverableError(Message[Template(ModifierOutOfOrder), The modifier 'augment' should be before the modifier 'external'., Try re-ordering the modifiers., {modifier: augment, expectedLaterModifier: external}], augment, augment) listener: beginMember() skipOuterPattern(var) skipObjectPatternRest(field) @@ -756,8 +742,6 @@ parseMetadataStar(;) listener: beginMetadataStar(augment) listener: endMetadataStar(0) - reportRecoverableError(external, Message[Template(ConflictingModifiers), Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {modifier: external, earlierModifier: augment}]) - listener: handleRecoverableError(Message[Template(ConflictingModifiers), Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {modifier: external, earlierModifier: augment}], external, external) listener: beginMember() skipOuterPattern(final) skipObjectPatternRest(field) @@ -775,8 +759,8 @@ parseMetadataStar(;) listener: beginMetadataStar(external) listener: endMetadataStar(0) - reportRecoverableError(augment, Message[Template(ConflictingModifiers), Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {modifier: augment, earlierModifier: external}]) - listener: handleRecoverableError(Message[Template(ConflictingModifiers), Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {modifier: augment, earlierModifier: external}], augment, augment) + reportRecoverableError(augment, Message[Template(ModifierOutOfOrder), The modifier 'augment' should be before the modifier 'external'., Try re-ordering the modifiers., {modifier: augment, expectedLaterModifier: external}]) + listener: handleRecoverableError(Message[Template(ModifierOutOfOrder), The modifier 'augment' should be before the modifier 'external'., Try re-ordering the modifiers., {modifier: augment, expectedLaterModifier: external}], augment, augment) listener: beginMember() skipOuterPattern(final) skipObjectPatternRest(field) @@ -820,8 +804,6 @@ parseMetadataStar(;) listener: beginMetadataStar(augment) listener: endMetadataStar(0) - reportRecoverableError(external, Message[Template(ConflictingModifiers), Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {modifier: external, earlierModifier: augment}]) - listener: handleRecoverableError(Message[Template(ConflictingModifiers), Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {modifier: external, earlierModifier: augment}], external, external) listener: beginMember() parseFields(;, null, augment, external, null, null, null, const, const, NoType(), field, DeclarationKind.Class, Class, false) listener: beginFields(DeclarationKind.Class, augment, null, external, null, null, null, const, ;) @@ -839,8 +821,8 @@ parseMetadataStar(;) listener: beginMetadataStar(external) listener: endMetadataStar(0) - reportRecoverableError(augment, Message[Template(ConflictingModifiers), Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {modifier: augment, earlierModifier: external}]) - listener: handleRecoverableError(Message[Template(ConflictingModifiers), Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {modifier: augment, earlierModifier: external}], augment, augment) + reportRecoverableError(augment, Message[Template(ModifierOutOfOrder), The modifier 'augment' should be before the modifier 'external'., Try re-ordering the modifiers., {modifier: augment, expectedLaterModifier: external}]) + listener: handleRecoverableError(Message[Template(ModifierOutOfOrder), The modifier 'augment' should be before the modifier 'external'., Try re-ordering the modifiers., {modifier: augment, expectedLaterModifier: external}], augment, augment) listener: beginMember() parseFields(;, null, null, external, null, null, null, const, const, NoType(), field, DeclarationKind.Class, Class, false) listener: beginFields(DeclarationKind.Class, null, null, external, null, null, null, const, ;) @@ -877,8 +859,6 @@ parseMetadataStar(;) listener: beginMetadataStar(augment) listener: endMetadataStar(0) - reportRecoverableError(external, Message[Template(ConflictingModifiers), Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {modifier: external, earlierModifier: augment}]) - listener: handleRecoverableError(Message[Template(ConflictingModifiers), Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {modifier: external, earlierModifier: augment}], external, external) listener: beginMember() parseFields(;, null, augment, external, null, null, null, null, external, SimpleType(), field, DeclarationKind.Class, Class, false) listener: beginFields(DeclarationKind.Class, augment, null, external, null, null, null, null, ;) @@ -896,8 +876,8 @@ parseMetadataStar(;) listener: beginMetadataStar(external) listener: endMetadataStar(0) - reportRecoverableError(augment, Message[Template(ConflictingModifiers), Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {modifier: augment, earlierModifier: external}]) - listener: handleRecoverableError(Message[Template(ConflictingModifiers), Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {modifier: augment, earlierModifier: external}], augment, augment) + reportRecoverableError(augment, Message[Template(ModifierOutOfOrder), The modifier 'augment' should be before the modifier 'external'., Try re-ordering the modifiers., {modifier: augment, expectedLaterModifier: external}]) + listener: handleRecoverableError(Message[Template(ModifierOutOfOrder), The modifier 'augment' should be before the modifier 'external'., Try re-ordering the modifiers., {modifier: augment, expectedLaterModifier: external}], augment, augment) listener: beginMember() parseFields(;, null, null, external, null, null, null, null, augment, SimpleType(), field, DeclarationKind.Class, Class, false) listener: beginFields(DeclarationKind.Class, null, null, external, null, null, null, null, ;)
diff --git a/pkg/front_end/parser_testcases/augmentation/top_level_errors.dart.expect b/pkg/front_end/parser_testcases/augmentation/top_level_errors.dart.expect index d23e652..0847582 100644 --- a/pkg/front_end/parser_testcases/augmentation/top_level_errors.dart.expect +++ b/pkg/front_end/parser_testcases/augmentation/top_level_errors.dart.expect
@@ -4,11 +4,7 @@ augment augment method() {} ^^^^^^^ -parser/augmentation/top_level_errors:2:9: Members can't be declared to be both 'external' and 'augment'. -augment external method(); - ^^^^^^^^ - -parser/augmentation/top_level_errors:3:10: Members can't be declared to be both 'augment' and 'external'. +parser/augmentation/top_level_errors:3:10: The modifier 'augment' should be before the modifier 'external'. external augment method(); ^^^^^^^ @@ -16,11 +12,7 @@ augment augment void method() {} ^^^^^^^ -parser/augmentation/top_level_errors:6:9: Members can't be declared to be both 'external' and 'augment'. -augment external void method(); - ^^^^^^^^ - -parser/augmentation/top_level_errors:7:10: Members can't be declared to be both 'augment' and 'external'. +parser/augmentation/top_level_errors:7:10: The modifier 'augment' should be before the modifier 'external'. external augment void method(); ^^^^^^^ @@ -28,11 +20,7 @@ augment augment get getter => null; ^^^^^^^ -parser/augmentation/top_level_errors:10:9: Members can't be declared to be both 'external' and 'augment'. -augment external get getter; - ^^^^^^^^ - -parser/augmentation/top_level_errors:11:10: Members can't be declared to be both 'augment' and 'external'. +parser/augmentation/top_level_errors:11:10: The modifier 'augment' should be before the modifier 'external'. external augment get getter; ^^^^^^^ @@ -40,11 +28,7 @@ augment augment int get getter => 0; ^^^^^^^ -parser/augmentation/top_level_errors:14:9: Members can't be declared to be both 'external' and 'augment'. -augment external int get getter; - ^^^^^^^^ - -parser/augmentation/top_level_errors:15:10: Members can't be declared to be both 'augment' and 'external'. +parser/augmentation/top_level_errors:15:10: The modifier 'augment' should be before the modifier 'external'. external augment int get getter; ^^^^^^^ @@ -52,11 +36,7 @@ augment augment set setter(value) {} ^^^^^^^ -parser/augmentation/top_level_errors:18:9: Members can't be declared to be both 'external' and 'augment'. -augment external set setter(value); - ^^^^^^^^ - -parser/augmentation/top_level_errors:19:10: Members can't be declared to be both 'augment' and 'external'. +parser/augmentation/top_level_errors:19:10: The modifier 'augment' should be before the modifier 'external'. external augment set setter(value); ^^^^^^^ @@ -64,11 +44,7 @@ augment augment void set setter(value) {} ^^^^^^^ -parser/augmentation/top_level_errors:22:9: Members can't be declared to be both 'external' and 'augment'. -augment external void set setter(value); - ^^^^^^^^ - -parser/augmentation/top_level_errors:23:10: Members can't be declared to be both 'augment' and 'external'. +parser/augmentation/top_level_errors:23:10: The modifier 'augment' should be before the modifier 'external'. external augment void set setter(value); ^^^^^^^ @@ -76,11 +52,7 @@ augment augment var field; ^^^^^^^ -parser/augmentation/top_level_errors:26:9: Members can't be declared to be both 'external' and 'augment'. -augment external var field; - ^^^^^^^^ - -parser/augmentation/top_level_errors:27:10: Members can't be declared to be both 'augment' and 'external'. +parser/augmentation/top_level_errors:27:10: The modifier 'augment' should be before the modifier 'external'. external augment var field; ^^^^^^^ @@ -88,11 +60,7 @@ augment augment int field = 0; ^^^^^^^ -parser/augmentation/top_level_errors:30:9: Members can't be declared to be both 'external' and 'augment'. -augment external int field; - ^^^^^^^^ - -parser/augmentation/top_level_errors:31:10: Members can't be declared to be both 'augment' and 'external'. +parser/augmentation/top_level_errors:31:10: The modifier 'augment' should be before the modifier 'external'. external augment int field; ^^^^^^^ @@ -151,7 +119,6 @@ beginMetadataStar(augment) endMetadataStar(0) beginTopLevelMember(augment) - handleRecoverableError(Message[Template(ConflictingModifiers), Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {modifier: external, earlierModifier: augment}], external, external) beginTopLevelMethod(}, augment, external) handleNoType(external) handleIdentifier(method, topLevelFunctionDeclaration) @@ -165,7 +132,7 @@ beginMetadataStar(external) endMetadataStar(0) beginTopLevelMember(external) - handleRecoverableError(Message[Template(ConflictingModifiers), Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {modifier: augment, earlierModifier: external}], augment, augment) + handleRecoverableError(Message[Template(ModifierOutOfOrder), The modifier 'augment' should be before the modifier 'external'., Try re-ordering the modifiers., {modifier: augment, expectedLaterModifier: external}], augment, augment) beginTopLevelMethod(;, augment, external) handleNoType(augment) handleIdentifier(method, topLevelFunctionDeclaration) @@ -194,7 +161,6 @@ beginMetadataStar(augment) endMetadataStar(0) beginTopLevelMember(augment) - handleRecoverableError(Message[Template(ConflictingModifiers), Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {modifier: external, earlierModifier: augment}], external, external) beginTopLevelMethod(}, augment, external) handleVoidKeyword(void) handleIdentifier(method, topLevelFunctionDeclaration) @@ -208,7 +174,7 @@ beginMetadataStar(external) endMetadataStar(0) beginTopLevelMember(external) - handleRecoverableError(Message[Template(ConflictingModifiers), Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {modifier: augment, earlierModifier: external}], augment, augment) + handleRecoverableError(Message[Template(ModifierOutOfOrder), The modifier 'augment' should be before the modifier 'external'., Try re-ordering the modifiers., {modifier: augment, expectedLaterModifier: external}], augment, augment) beginTopLevelMethod(;, augment, external) handleVoidKeyword(void) handleIdentifier(method, topLevelFunctionDeclaration) @@ -236,7 +202,6 @@ beginMetadataStar(augment) endMetadataStar(0) beginTopLevelMember(augment) - handleRecoverableError(Message[Template(ConflictingModifiers), Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {modifier: external, earlierModifier: augment}], external, external) beginTopLevelMethod(;, augment, external) handleNoType(external) handleIdentifier(getter, topLevelFunctionDeclaration) @@ -249,7 +214,7 @@ beginMetadataStar(external) endMetadataStar(0) beginTopLevelMember(external) - handleRecoverableError(Message[Template(ConflictingModifiers), Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {modifier: augment, earlierModifier: external}], augment, augment) + handleRecoverableError(Message[Template(ModifierOutOfOrder), The modifier 'augment' should be before the modifier 'external'., Try re-ordering the modifiers., {modifier: augment, expectedLaterModifier: external}], augment, augment) beginTopLevelMethod(;, augment, external) handleNoType(augment) handleIdentifier(getter, topLevelFunctionDeclaration) @@ -278,7 +243,6 @@ beginMetadataStar(augment) endMetadataStar(0) beginTopLevelMember(augment) - handleRecoverableError(Message[Template(ConflictingModifiers), Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {modifier: external, earlierModifier: augment}], external, external) beginTopLevelMethod(;, augment, external) handleIdentifier(int, typeReference) handleNoTypeArguments(get) @@ -293,7 +257,7 @@ beginMetadataStar(external) endMetadataStar(0) beginTopLevelMember(external) - handleRecoverableError(Message[Template(ConflictingModifiers), Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {modifier: augment, earlierModifier: external}], augment, augment) + handleRecoverableError(Message[Template(ModifierOutOfOrder), The modifier 'augment' should be before the modifier 'external'., Try re-ordering the modifiers., {modifier: augment, expectedLaterModifier: external}], augment, augment) beginTopLevelMethod(;, augment, external) handleIdentifier(int, typeReference) handleNoTypeArguments(get) @@ -330,7 +294,6 @@ beginMetadataStar(augment) endMetadataStar(0) beginTopLevelMember(augment) - handleRecoverableError(Message[Template(ConflictingModifiers), Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {modifier: external, earlierModifier: augment}], external, external) beginTopLevelMethod(}, augment, external) handleNoType(external) handleIdentifier(setter, topLevelFunctionDeclaration) @@ -351,7 +314,7 @@ beginMetadataStar(external) endMetadataStar(0) beginTopLevelMember(external) - handleRecoverableError(Message[Template(ConflictingModifiers), Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {modifier: augment, earlierModifier: external}], augment, augment) + handleRecoverableError(Message[Template(ModifierOutOfOrder), The modifier 'augment' should be before the modifier 'external'., Try re-ordering the modifiers., {modifier: augment, expectedLaterModifier: external}], augment, augment) beginTopLevelMethod(;, augment, external) handleNoType(augment) handleIdentifier(setter, topLevelFunctionDeclaration) @@ -394,7 +357,6 @@ beginMetadataStar(augment) endMetadataStar(0) beginTopLevelMember(augment) - handleRecoverableError(Message[Template(ConflictingModifiers), Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {modifier: external, earlierModifier: augment}], external, external) beginTopLevelMethod(}, augment, external) handleVoidKeyword(void) handleIdentifier(setter, topLevelFunctionDeclaration) @@ -415,7 +377,7 @@ beginMetadataStar(external) endMetadataStar(0) beginTopLevelMember(external) - handleRecoverableError(Message[Template(ConflictingModifiers), Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {modifier: augment, earlierModifier: external}], augment, augment) + handleRecoverableError(Message[Template(ModifierOutOfOrder), The modifier 'augment' should be before the modifier 'external'., Try re-ordering the modifiers., {modifier: augment, expectedLaterModifier: external}], augment, augment) beginTopLevelMethod(;, augment, external) handleVoidKeyword(void) handleIdentifier(setter, topLevelFunctionDeclaration) @@ -446,7 +408,6 @@ beginMetadataStar(augment) endMetadataStar(0) beginTopLevelMember(augment) - handleRecoverableError(Message[Template(ConflictingModifiers), Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {modifier: external, earlierModifier: augment}], external, external) beginFields(DeclarationKind.TopLevel, augment, null, external, null, null, null, var, ;) handleNoType(var) handleIdentifier(field, topLevelVariableDeclaration) @@ -456,7 +417,7 @@ beginMetadataStar(external) endMetadataStar(0) beginTopLevelMember(external) - handleRecoverableError(Message[Template(ConflictingModifiers), Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {modifier: augment, earlierModifier: external}], augment, augment) + handleRecoverableError(Message[Template(ModifierOutOfOrder), The modifier 'augment' should be before the modifier 'external'., Try re-ordering the modifiers., {modifier: augment, expectedLaterModifier: external}], augment, augment) beginFields(DeclarationKind.TopLevel, augment, null, external, null, null, null, var, ;) handleNoType(var) handleIdentifier(field, topLevelVariableDeclaration) @@ -480,7 +441,6 @@ beginMetadataStar(augment) endMetadataStar(0) beginTopLevelMember(augment) - handleRecoverableError(Message[Template(ConflictingModifiers), Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {modifier: external, earlierModifier: augment}], external, external) beginFields(DeclarationKind.TopLevel, augment, null, external, null, null, null, null, ;) handleIdentifier(int, typeReference) handleNoTypeArguments(field) @@ -492,7 +452,7 @@ beginMetadataStar(external) endMetadataStar(0) beginTopLevelMember(external) - handleRecoverableError(Message[Template(ConflictingModifiers), Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {modifier: augment, earlierModifier: external}], augment, augment) + handleRecoverableError(Message[Template(ModifierOutOfOrder), The modifier 'augment' should be before the modifier 'external'., Try re-ordering the modifiers., {modifier: augment, expectedLaterModifier: external}], augment, augment) beginFields(DeclarationKind.TopLevel, augment, null, external, null, null, null, null, ;) handleIdentifier(int, typeReference) handleNoTypeArguments(field)
diff --git a/pkg/front_end/parser_testcases/augmentation/top_level_errors.dart.intertwined.expect b/pkg/front_end/parser_testcases/augmentation/top_level_errors.dart.intertwined.expect index de09636..84e8377 100644 --- a/pkg/front_end/parser_testcases/augmentation/top_level_errors.dart.intertwined.expect +++ b/pkg/front_end/parser_testcases/augmentation/top_level_errors.dart.intertwined.expect
@@ -38,8 +38,6 @@ listener: endMetadataStar(0) parseTopLevelMemberImpl(}) listener: beginTopLevelMember(augment) - reportRecoverableError(external, Message[Template(ConflictingModifiers), Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {modifier: external, earlierModifier: augment}]) - listener: handleRecoverableError(Message[Template(ConflictingModifiers), Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {modifier: external, earlierModifier: augment}], external, external) isReservedKeyword(() parseTopLevelMethod(}, augment, external, external, NoType(), null, method, false) listener: beginTopLevelMethod(}, augment, external) @@ -66,8 +64,8 @@ listener: endMetadataStar(0) parseTopLevelMemberImpl(;) listener: beginTopLevelMember(external) - reportRecoverableError(augment, Message[Template(ConflictingModifiers), Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {modifier: augment, earlierModifier: external}]) - listener: handleRecoverableError(Message[Template(ConflictingModifiers), Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {modifier: augment, earlierModifier: external}], augment, augment) + reportRecoverableError(augment, Message[Template(ModifierOutOfOrder), The modifier 'augment' should be before the modifier 'external'., Try re-ordering the modifiers., {modifier: augment, expectedLaterModifier: external}]) + listener: handleRecoverableError(Message[Template(ModifierOutOfOrder), The modifier 'augment' should be before the modifier 'external'., Try re-ordering the modifiers., {modifier: augment, expectedLaterModifier: external}], augment, augment) isReservedKeyword(() parseTopLevelMethod(;, augment, external, augment, NoType(), null, method, false) listener: beginTopLevelMethod(;, augment, external) @@ -123,8 +121,6 @@ listener: endMetadataStar(0) parseTopLevelMemberImpl(}) listener: beginTopLevelMember(augment) - reportRecoverableError(external, Message[Template(ConflictingModifiers), Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {modifier: external, earlierModifier: augment}]) - listener: handleRecoverableError(Message[Template(ConflictingModifiers), Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {modifier: external, earlierModifier: augment}], external, external) parseTopLevelMethod(}, augment, external, external, VoidType(), null, method, false) listener: beginTopLevelMethod(}, augment, external) listener: handleVoidKeyword(void) @@ -150,8 +146,8 @@ listener: endMetadataStar(0) parseTopLevelMemberImpl(;) listener: beginTopLevelMember(external) - reportRecoverableError(augment, Message[Template(ConflictingModifiers), Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {modifier: augment, earlierModifier: external}]) - listener: handleRecoverableError(Message[Template(ConflictingModifiers), Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {modifier: augment, earlierModifier: external}], augment, augment) + reportRecoverableError(augment, Message[Template(ModifierOutOfOrder), The modifier 'augment' should be before the modifier 'external'., Try re-ordering the modifiers., {modifier: augment, expectedLaterModifier: external}]) + listener: handleRecoverableError(Message[Template(ModifierOutOfOrder), The modifier 'augment' should be before the modifier 'external'., Try re-ordering the modifiers., {modifier: augment, expectedLaterModifier: external}], augment, augment) parseTopLevelMethod(;, augment, external, augment, VoidType(), null, method, false) listener: beginTopLevelMethod(;, augment, external) listener: handleVoidKeyword(void) @@ -213,8 +209,6 @@ listener: endMetadataStar(0) parseTopLevelMemberImpl(;) listener: beginTopLevelMember(augment) - reportRecoverableError(external, Message[Template(ConflictingModifiers), Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {modifier: external, earlierModifier: augment}]) - listener: handleRecoverableError(Message[Template(ConflictingModifiers), Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {modifier: external, earlierModifier: augment}], external, external) isReservedKeyword(;) parseTopLevelMethod(;, augment, external, external, NoType(), get, getter, false) listener: beginTopLevelMethod(;, augment, external) @@ -238,8 +232,8 @@ listener: endMetadataStar(0) parseTopLevelMemberImpl(;) listener: beginTopLevelMember(external) - reportRecoverableError(augment, Message[Template(ConflictingModifiers), Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {modifier: augment, earlierModifier: external}]) - listener: handleRecoverableError(Message[Template(ConflictingModifiers), Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {modifier: augment, earlierModifier: external}], augment, augment) + reportRecoverableError(augment, Message[Template(ModifierOutOfOrder), The modifier 'augment' should be before the modifier 'external'., Try re-ordering the modifiers., {modifier: augment, expectedLaterModifier: external}]) + listener: handleRecoverableError(Message[Template(ModifierOutOfOrder), The modifier 'augment' should be before the modifier 'external'., Try re-ordering the modifiers., {modifier: augment, expectedLaterModifier: external}], augment, augment) isReservedKeyword(;) parseTopLevelMethod(;, augment, external, augment, NoType(), get, getter, false) listener: beginTopLevelMethod(;, augment, external) @@ -300,8 +294,6 @@ listener: endMetadataStar(0) parseTopLevelMemberImpl(;) listener: beginTopLevelMember(augment) - reportRecoverableError(external, Message[Template(ConflictingModifiers), Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {modifier: external, earlierModifier: augment}]) - listener: handleRecoverableError(Message[Template(ConflictingModifiers), Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {modifier: external, earlierModifier: augment}], external, external) parseTopLevelMethod(;, augment, external, external, SimpleType(), get, getter, false) listener: beginTopLevelMethod(;, augment, external) listener: handleIdentifier(int, typeReference) @@ -326,8 +318,8 @@ listener: endMetadataStar(0) parseTopLevelMemberImpl(;) listener: beginTopLevelMember(external) - reportRecoverableError(augment, Message[Template(ConflictingModifiers), Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {modifier: augment, earlierModifier: external}]) - listener: handleRecoverableError(Message[Template(ConflictingModifiers), Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {modifier: augment, earlierModifier: external}], augment, augment) + reportRecoverableError(augment, Message[Template(ModifierOutOfOrder), The modifier 'augment' should be before the modifier 'external'., Try re-ordering the modifiers., {modifier: augment, expectedLaterModifier: external}]) + listener: handleRecoverableError(Message[Template(ModifierOutOfOrder), The modifier 'augment' should be before the modifier 'external'., Try re-ordering the modifiers., {modifier: augment, expectedLaterModifier: external}], augment, augment) parseTopLevelMethod(;, augment, external, augment, SimpleType(), get, getter, false) listener: beginTopLevelMethod(;, augment, external) listener: handleIdentifier(int, typeReference) @@ -392,8 +384,6 @@ listener: endMetadataStar(0) parseTopLevelMemberImpl(}) listener: beginTopLevelMember(augment) - reportRecoverableError(external, Message[Template(ConflictingModifiers), Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {modifier: external, earlierModifier: augment}]) - listener: handleRecoverableError(Message[Template(ConflictingModifiers), Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {modifier: external, earlierModifier: augment}], external, external) isReservedKeyword(() parseTopLevelMethod(}, augment, external, external, NoType(), set, setter, false) listener: beginTopLevelMethod(}, augment, external) @@ -430,8 +420,8 @@ listener: endMetadataStar(0) parseTopLevelMemberImpl(;) listener: beginTopLevelMember(external) - reportRecoverableError(augment, Message[Template(ConflictingModifiers), Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {modifier: augment, earlierModifier: external}]) - listener: handleRecoverableError(Message[Template(ConflictingModifiers), Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {modifier: augment, earlierModifier: external}], augment, augment) + reportRecoverableError(augment, Message[Template(ModifierOutOfOrder), The modifier 'augment' should be before the modifier 'external'., Try re-ordering the modifiers., {modifier: augment, expectedLaterModifier: external}]) + listener: handleRecoverableError(Message[Template(ModifierOutOfOrder), The modifier 'augment' should be before the modifier 'external'., Try re-ordering the modifiers., {modifier: augment, expectedLaterModifier: external}], augment, augment) isReservedKeyword(() parseTopLevelMethod(;, augment, external, augment, NoType(), set, setter, false) listener: beginTopLevelMethod(;, augment, external) @@ -507,8 +497,6 @@ listener: endMetadataStar(0) parseTopLevelMemberImpl(}) listener: beginTopLevelMember(augment) - reportRecoverableError(external, Message[Template(ConflictingModifiers), Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {modifier: external, earlierModifier: augment}]) - listener: handleRecoverableError(Message[Template(ConflictingModifiers), Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {modifier: external, earlierModifier: augment}], external, external) parseTopLevelMethod(}, augment, external, external, VoidType(), set, setter, false) listener: beginTopLevelMethod(}, augment, external) listener: handleVoidKeyword(void) @@ -544,8 +532,8 @@ listener: endMetadataStar(0) parseTopLevelMemberImpl(;) listener: beginTopLevelMember(external) - reportRecoverableError(augment, Message[Template(ConflictingModifiers), Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {modifier: augment, earlierModifier: external}]) - listener: handleRecoverableError(Message[Template(ConflictingModifiers), Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {modifier: augment, earlierModifier: external}], augment, augment) + reportRecoverableError(augment, Message[Template(ModifierOutOfOrder), The modifier 'augment' should be before the modifier 'external'., Try re-ordering the modifiers., {modifier: augment, expectedLaterModifier: external}]) + listener: handleRecoverableError(Message[Template(ModifierOutOfOrder), The modifier 'augment' should be before the modifier 'external'., Try re-ordering the modifiers., {modifier: augment, expectedLaterModifier: external}], augment, augment) parseTopLevelMethod(;, augment, external, augment, VoidType(), set, setter, false) listener: beginTopLevelMethod(;, augment, external) listener: handleVoidKeyword(void) @@ -600,8 +588,6 @@ listener: endMetadataStar(0) parseTopLevelMemberImpl(;) listener: beginTopLevelMember(augment) - reportRecoverableError(external, Message[Template(ConflictingModifiers), Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {modifier: external, earlierModifier: augment}]) - listener: handleRecoverableError(Message[Template(ConflictingModifiers), Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {modifier: external, earlierModifier: augment}], external, external) skipOuterPattern(var) skipObjectPatternRest(field) parseFields(;, null, augment, external, null, null, null, var, var, NoType(), field, DeclarationKind.TopLevel, null, false) @@ -619,8 +605,8 @@ listener: endMetadataStar(0) parseTopLevelMemberImpl(;) listener: beginTopLevelMember(external) - reportRecoverableError(augment, Message[Template(ConflictingModifiers), Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {modifier: augment, earlierModifier: external}]) - listener: handleRecoverableError(Message[Template(ConflictingModifiers), Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {modifier: augment, earlierModifier: external}], augment, augment) + reportRecoverableError(augment, Message[Template(ModifierOutOfOrder), The modifier 'augment' should be before the modifier 'external'., Try re-ordering the modifiers., {modifier: augment, expectedLaterModifier: external}]) + listener: handleRecoverableError(Message[Template(ModifierOutOfOrder), The modifier 'augment' should be before the modifier 'external'., Try re-ordering the modifiers., {modifier: augment, expectedLaterModifier: external}], augment, augment) skipOuterPattern(var) skipObjectPatternRest(field) parseFields(;, null, augment, external, null, null, null, var, var, NoType(), field, DeclarationKind.TopLevel, null, false) @@ -666,8 +652,6 @@ listener: endMetadataStar(0) parseTopLevelMemberImpl(;) listener: beginTopLevelMember(augment) - reportRecoverableError(external, Message[Template(ConflictingModifiers), Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {modifier: external, earlierModifier: augment}]) - listener: handleRecoverableError(Message[Template(ConflictingModifiers), Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {modifier: external, earlierModifier: augment}], external, external) parseFields(;, null, augment, external, null, null, null, null, external, SimpleType(), field, DeclarationKind.TopLevel, null, false) listener: beginFields(DeclarationKind.TopLevel, augment, null, external, null, null, null, null, ;) listener: handleIdentifier(int, typeReference) @@ -685,8 +669,8 @@ listener: endMetadataStar(0) parseTopLevelMemberImpl(;) listener: beginTopLevelMember(external) - reportRecoverableError(augment, Message[Template(ConflictingModifiers), Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {modifier: augment, earlierModifier: external}]) - listener: handleRecoverableError(Message[Template(ConflictingModifiers), Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {modifier: augment, earlierModifier: external}], augment, augment) + reportRecoverableError(augment, Message[Template(ModifierOutOfOrder), The modifier 'augment' should be before the modifier 'external'., Try re-ordering the modifiers., {modifier: augment, expectedLaterModifier: external}]) + listener: handleRecoverableError(Message[Template(ModifierOutOfOrder), The modifier 'augment' should be before the modifier 'external'., Try re-ordering the modifiers., {modifier: augment, expectedLaterModifier: external}], augment, augment) parseFields(;, null, augment, external, null, null, null, null, augment, SimpleType(), field, DeclarationKind.TopLevel, null, false) listener: beginFields(DeclarationKind.TopLevel, augment, null, external, null, null, null, null, ;) listener: handleIdentifier(int, typeReference)