Index: pkg/analyzer/lib/src/fasta/ast_builder.dart |
diff --git a/pkg/analyzer/lib/src/fasta/ast_builder.dart b/pkg/analyzer/lib/src/fasta/ast_builder.dart |
index 6425a7ebfb9c4b0af48f8e45f6df0836d6273029..c6f57cea7b1b7bb065b097aada8bc69c5879a607 100644 |
--- a/pkg/analyzer/lib/src/fasta/ast_builder.dart |
+++ b/pkg/analyzer/lib/src/fasta/ast_builder.dart |
@@ -1906,6 +1906,18 @@ class AstBuilder extends ScopeListener { |
void addCompileTimeError(Message message, int charOffset) { |
Code code = message.code; |
Map<String, dynamic> arguments = message.arguments; |
+ |
+ String stringOrTokenLexeme() { |
+ var text = arguments['string']; |
+ if (text == null) { |
+ Token token = arguments['token']; |
+ if (token != null) { |
+ text = token.lexeme; |
+ } |
+ } |
+ return text; |
+ } |
+ |
switch (code.analyzerCode) { |
case "EXPECTED_TYPE_NAME": |
errorReporter?.reportErrorForOffset( |
@@ -1923,20 +1935,19 @@ class AstBuilder extends ScopeListener { |
errorReporter?.reportErrorForOffset( |
ParserErrorCode.EXPECTED_STRING_LITERAL, charOffset, 1); |
return; |
+ case "EXTRANEOUS_MODIFIER": |
+ String text = stringOrTokenLexeme(); |
+ errorReporter?.reportErrorForOffset(ParserErrorCode.EXTRANEOUS_MODIFIER, |
+ charOffset, text.length, [text]); |
+ return; |
case "UNEXPECTED_TOKEN": |
- String text = arguments['string']; |
- if (text == null) { |
- Token token = arguments['token']; |
- if (token != null) { |
- text = token.lexeme; |
- } |
- } |
+ String text = stringOrTokenLexeme(); |
if (text == ';') { |
errorReporter?.reportErrorForOffset( |
ParserErrorCode.EXPECTED_TOKEN, charOffset, text.length, [text]); |
} else { |
- errorReporter?.reportErrorForOffset( |
- ParserErrorCode.UNEXPECTED_TOKEN, charOffset, 1, [text]); |
+ errorReporter?.reportErrorForOffset(ParserErrorCode.UNEXPECTED_TOKEN, |
+ charOffset, text.length, [text]); |
} |
return; |
default: |