File tree Expand file tree Collapse file tree 2 files changed +15
-2
lines changed Expand file tree Collapse file tree 2 files changed +15
-2
lines changed Original file line number Diff line number Diff line change @@ -3848,7 +3848,7 @@ class Parser {
3848
3848
modifiers.constKeyword = getAndAdvance ();
3849
3849
}
3850
3850
} else if (keyword == Keyword .COVARIANT ) {
3851
- if (modifiers.constKeyword != null ) {
3851
+ if (modifiers.covariantKeyword != null ) {
3852
3852
_reportErrorForCurrentToken (
3853
3853
ParserErrorCode .DUPLICATED_MODIFIER , [_currentToken.lexeme]);
3854
3854
_advance ();
@@ -4152,6 +4152,11 @@ class Parser {
4152
4152
_tokenMatchesIdentifier (next)) {
4153
4153
covariantKeyword = getAndAdvance ();
4154
4154
}
4155
+ while (_matchesKeyword (Keyword .COVARIANT )) {
4156
+ _reportErrorForCurrentToken (
4157
+ ParserErrorCode .DUPLICATED_MODIFIER , [_currentToken.lexeme]);
4158
+ _advance ();
4159
+ }
4155
4160
}
4156
4161
FinalConstVarOrType holder = parseFinalConstVarOrType (! inFunctionType,
4157
4162
inFunctionType: inFunctionType);
Original file line number Diff line number Diff line change @@ -987,6 +987,14 @@ class ErrorParserTest extends ParserTestCase {
987
987
listener.assertErrorsWithCodes([ParserErrorCode.DUPLICATED_MODIFIER]);
988
988
}
989
989
990
+ void test_duplicatedModifier_covariant() {
991
+ createParser('covariant covariant m;');
992
+ FormalParameter parameter =
993
+ parser.parseFormalParameter(ParameterKind.REQUIRED);
994
+ expectNotNullIfNoErrors(parameter);
995
+ listener.assertErrorsWithCodes([ParserErrorCode.DUPLICATED_MODIFIER]);
996
+ }
997
+
990
998
void test_duplicatedModifier_external() {
991
999
createParser('external external f();');
992
1000
ClassMember member = parser.parseClassMember('C');
@@ -8991,7 +8999,7 @@ void''');
8991
8999
8992
9000
void test_parseFormalParameter_covariant_type_normal() {
8993
9001
ParameterKind kind = ParameterKind.REQUIRED;
8994
- createParser('covariant A a');
9002
+ createParser('covariant A<B<C>> a');
8995
9003
FormalParameter parameter = parser.parseFormalParameter(kind);
8996
9004
expectNotNullIfNoErrors(parameter);
8997
9005
listener.assertNoErrors();
You can’t perform that action at this time.
0 commit comments