| Index: pkg/analyzer/lib/src/generated/parser.dart
|
| diff --git a/pkg/analyzer/lib/src/generated/parser.dart b/pkg/analyzer/lib/src/generated/parser.dart
|
| index 765b4c6d7b853e51229af6eaa2082933e44d9050..158d093368ca1b8225c2a49359dbd30a98229af3 100644
|
| --- a/pkg/analyzer/lib/src/generated/parser.dart
|
| +++ b/pkg/analyzer/lib/src/generated/parser.dart
|
| @@ -180,6 +180,12 @@ class Parser {
|
| static const int _MAX_TREE_DEPTH = 300;
|
|
|
| /**
|
| + * A flag indicating whether the analyzer [Parser] factory method
|
| + * will return a fasta based parser or an analyzer based parser.
|
| + */
|
| + static bool useFasta = const bool.fromEnvironment("useFastaParser");
|
| +
|
| + /**
|
| * The source being parsed.
|
| */
|
| final Source _source;
|
| @@ -270,12 +276,6 @@ class Parser {
|
| bool parseGenericMethodComments = false;
|
|
|
| /**
|
| - * A flag indicating whether the analyzer [Parser] factory method
|
| - * will return a fasta based parser or an analyzer based parser.
|
| - */
|
| - static bool useFasta = const bool.fromEnvironment("useFastaParser");
|
| -
|
| - /**
|
| * Initialize a newly created parser to parse tokens in the given [_source]
|
| * and to report any errors that are found to the given [_errorListener].
|
| */
|
| @@ -2888,6 +2888,21 @@ class Parser {
|
| } else if (inFunctionType && _matchesIdentifier()) {
|
| type = parseTypeAnnotation(false);
|
| } else if (!optional) {
|
| + // If there is a valid type immediately following an unexpected token,
|
| + // then report and skip the unexpected token.
|
| + Token next = _peek();
|
| + Keyword nextKeyword = next.keyword;
|
| + if (nextKeyword == Keyword.FINAL ||
|
| + nextKeyword == Keyword.CONST ||
|
| + nextKeyword == Keyword.VAR ||
|
| + _isTypedIdentifier(next) ||
|
| + inFunctionType && _tokenMatchesIdentifier(next)) {
|
| + _reportErrorForCurrentToken(
|
| + ParserErrorCode.UNEXPECTED_TOKEN, [_currentToken.lexeme]);
|
| + _advance();
|
| + return parseFinalConstVarOrType(optional,
|
| + inFunctionType: inFunctionType);
|
| + }
|
| _reportErrorForCurrentToken(
|
| ParserErrorCode.MISSING_CONST_FINAL_VAR_OR_TYPE);
|
| } else {
|
|
|