Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(216)

Unified Diff: pkg/front_end/lib/src/fasta/parser/parser.dart

Issue 2744113002: Change the calling conventions for Parser.reportUnrecoverableError. (Closed)
Patch Set: Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | pkg/front_end/lib/src/fasta/source/diet_parser.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/front_end/lib/src/fasta/parser/parser.dart
diff --git a/pkg/front_end/lib/src/fasta/parser/parser.dart b/pkg/front_end/lib/src/fasta/parser/parser.dart
index 4b24296358c7d77db910c1721c10d482b71aec53..c7dc51d9915067ee1ef27895aa5880da0370ff80 100644
--- a/pkg/front_end/lib/src/fasta/parser/parser.dart
+++ b/pkg/front_end/lib/src/fasta/parser/parser.dart
@@ -460,7 +460,7 @@ class Parser {
return token;
}
return reportUnrecoverableError(
- token, ErrorKind.ExpectedButGot, {"expected": "("});
+ token, ErrorKind.ExpectedButGot, {"expected": "("})?.next;
}
BeginGroupToken beginGroupToken = token;
Token endToken = beginGroupToken.endGroup;
@@ -752,16 +752,17 @@ class Parser {
Token skipBlock(Token token) {
if (!optional('{', token)) {
- return reportUnrecoverableError(token, ErrorKind.ExpectedBlockToSkip);
+ return reportUnrecoverableError(token, ErrorKind.ExpectedBlockToSkip)
+ ?.next;
}
BeginGroupToken beginGroupToken = token;
Token endGroup = beginGroupToken.endGroup;
if (endGroup == null) {
- return reportUnrecoverableError(
- beginGroupToken, ErrorKind.UnmatchedToken);
+ return reportUnrecoverableError(beginGroupToken, ErrorKind.UnmatchedToken)
+ ?.next;
} else if (!identical(endGroup.kind, $CLOSE_CURLY_BRACKET)) {
- return reportUnrecoverableError(
- beginGroupToken, ErrorKind.UnmatchedToken);
+ return reportUnrecoverableError(beginGroupToken, ErrorKind.UnmatchedToken)
+ ?.next;
}
return beginGroupToken.endGroup;
}
@@ -870,7 +871,7 @@ class Parser {
Token parseStringPart(Token token) {
if (token.kind != STRING_TOKEN) {
- token = reportUnrecoverableError(token, ErrorKind.ExpectedString);
+ token = reportUnrecoverableError(token, ErrorKind.ExpectedString)?.next;
}
listener.handleStringPart(token);
return token.next;
@@ -878,7 +879,8 @@ class Parser {
Token parseIdentifier(Token token, IdentifierContext context) {
if (!token.isIdentifier()) {
- token = reportUnrecoverableError(token, ErrorKind.ExpectedIdentifier);
+ token =
+ reportUnrecoverableError(token, ErrorKind.ExpectedIdentifier)?.next;
}
listener.handleIdentifier(token, context);
return token.next;
@@ -887,7 +889,7 @@ class Parser {
Token expect(String string, Token token) {
if (!identical(string, token.stringValue)) {
return reportUnrecoverableError(
- token, ErrorKind.ExpectedButGot, {"expected": string});
+ token, ErrorKind.ExpectedButGot, {"expected": string})?.next;
}
return token.next;
}
@@ -957,7 +959,7 @@ class Parser {
token = parseQualifiedRestOpt(
token, IdentifierContext.typeReferenceContinuation);
} else {
- token = reportUnrecoverableError(token, ErrorKind.ExpectedType);
+ token = reportUnrecoverableError(token, ErrorKind.ExpectedType)?.next;
listener.handleInvalidTypeReference(token);
}
token = parseTypeArgumentsOpt(token);
@@ -1033,13 +1035,15 @@ class Parser {
Link<Token> identifiers = findMemberName(token);
if (identifiers.isEmpty) {
- return reportUnrecoverableError(start, ErrorKind.ExpectedDeclaration);
+ return reportUnrecoverableError(start, ErrorKind.ExpectedDeclaration)
+ ?.next;
}
Token afterName = identifiers.head;
identifiers = identifiers.tail;
if (identifiers.isEmpty) {
- return reportUnrecoverableError(start, ErrorKind.ExpectedDeclaration);
+ return reportUnrecoverableError(start, ErrorKind.ExpectedDeclaration)
+ ?.next;
}
Token name = identifiers.head;
identifiers = identifiers.tail;
@@ -1084,7 +1088,8 @@ class Parser {
}
break;
} else {
- token = reportUnrecoverableError(token, ErrorKind.UnexpectedToken);
+ token =
+ reportUnrecoverableError(token, ErrorKind.UnexpectedToken)?.next;
if (identical(token.kind, EOF_TOKEN)) return token;
}
}
@@ -1621,16 +1626,17 @@ class Parser {
Token skipClassBody(Token token) {
if (!optional('{', token)) {
- return reportUnrecoverableError(token, ErrorKind.ExpectedClassBodyToSkip);
+ return reportUnrecoverableError(token, ErrorKind.ExpectedClassBodyToSkip)
+ ?.next;
}
BeginGroupToken beginGroupToken = token;
Token endGroup = beginGroupToken.endGroup;
if (endGroup == null) {
- return reportUnrecoverableError(
- beginGroupToken, ErrorKind.UnmatchedToken);
+ return reportUnrecoverableError(beginGroupToken, ErrorKind.UnmatchedToken)
+ ?.next;
} else if (!identical(endGroup.kind, $CLOSE_CURLY_BRACKET)) {
- return reportUnrecoverableError(
- beginGroupToken, ErrorKind.UnmatchedToken);
+ return reportUnrecoverableError(beginGroupToken, ErrorKind.UnmatchedToken)
+ ?.next;
}
return endGroup;
}
@@ -1639,7 +1645,8 @@ class Parser {
Token begin = token;
listener.beginClassBody(token);
if (!optional('{', token)) {
- token = reportUnrecoverableError(token, ErrorKind.ExpectedClassBody);
+ token =
+ reportUnrecoverableError(token, ErrorKind.ExpectedClassBody)?.next;
}
token = token.next;
int count = 0;
@@ -1676,13 +1683,15 @@ class Parser {
Link<Token> identifiers = findMemberName(token);
if (identifiers.isEmpty) {
- return reportUnrecoverableError(start, ErrorKind.ExpectedDeclaration);
+ return reportUnrecoverableError(start, ErrorKind.ExpectedDeclaration)
+ ?.next;
}
Token afterName = identifiers.head;
identifiers = identifiers.tail;
if (identifiers.isEmpty) {
- return reportUnrecoverableError(start, ErrorKind.ExpectedDeclaration);
+ return reportUnrecoverableError(start, ErrorKind.ExpectedDeclaration)
+ ?.next;
}
Token name = identifiers.head;
identifiers = identifiers.tail;
@@ -1734,7 +1743,8 @@ class Parser {
isField = true;
break;
} else {
- token = reportUnrecoverableError(token, ErrorKind.UnexpectedToken);
+ token =
+ reportUnrecoverableError(token, ErrorKind.UnexpectedToken)?.next;
if (identical(token.kind, EOF_TOKEN)) {
// TODO(ahe): This is a hack, see parseTopLevelMember.
listener.endFields(1, null, start, token);
@@ -2052,7 +2062,8 @@ class Parser {
Token begin = token;
int statementCount = 0;
if (!optional('{', token)) {
- token = reportUnrecoverableError(token, ErrorKind.ExpectedFunctionBody);
+ token =
+ reportUnrecoverableError(token, ErrorKind.ExpectedFunctionBody)?.next;
listener.handleInvalidFunctionBody(token);
return token;
}
@@ -2121,7 +2132,7 @@ class Parser {
// This happens for degenerate programs, for example, a lot of nested
// if-statements. The language test deep_nesting2_negative_test, for
// example, provokes this.
- return reportUnrecoverableError(token, ErrorKind.StackOverflow);
+ return reportUnrecoverableError(token, ErrorKind.StackOverflow)?.next;
}
Token result = parseStatementX(token);
statementDepth--;
@@ -2426,7 +2437,7 @@ class Parser {
BeginGroupToken begin = token;
token = (begin.endGroup != null) ? begin.endGroup : token;
} else if (token is ErrorToken) {
- reportErrorToken(token, false);
+ reportErrorToken(token, false)?.next;
}
token = token.next;
}
@@ -2441,7 +2452,7 @@ class Parser {
// This happens in degenerate programs, for example, with a lot of nested
// list literals. This is provoked by, for examaple, the language test
// deep_nesting1_negative_test.
- return reportUnrecoverableError(token, ErrorKind.StackOverflow);
+ return reportUnrecoverableError(token, ErrorKind.StackOverflow)?.next;
}
listener.beginExpression(token);
Token result = optional('throw', token)
@@ -2508,7 +2519,8 @@ class Parser {
listener.handleUnaryPostfixAssignmentExpression(token);
token = token.next;
} else {
- token = reportUnrecoverableError(token, ErrorKind.UnexpectedToken);
+ token = reportUnrecoverableError(token, ErrorKind.UnexpectedToken)
+ ?.next;
}
} else if (identical(info, IS_INFO)) {
token = parseIsOperatorRest(token);
@@ -2548,7 +2560,7 @@ class Parser {
token = parseSend(token, IdentifierContext.expressionContinuation);
listener.handleBinaryExpression(cascadeOperator);
} else {
- return reportUnrecoverableError(token, ErrorKind.UnexpectedToken);
+ return reportUnrecoverableError(token, ErrorKind.UnexpectedToken)?.next;
}
Token mark;
do {
@@ -2676,7 +2688,7 @@ class Parser {
}
Token expressionExpected(Token token) {
- token = reportUnrecoverableError(token, ErrorKind.ExpectedExpression);
+ token = reportUnrecoverableError(token, ErrorKind.ExpectedExpression)?.next;
listener.handleInvalidExpression(token);
return token;
}
@@ -2710,7 +2722,7 @@ class Parser {
// [begin] is now known to have type [BeginGroupToken].
token = parseExpression(token);
if (!identical(begin.endGroup, token)) {
- reportUnrecoverableError(token, ErrorKind.UnexpectedToken);
+ reportUnrecoverableError(token, ErrorKind.UnexpectedToken)?.next;
token = begin.endGroup;
}
listener.handleParenthesizedExpression(begin);
@@ -2899,7 +2911,7 @@ class Parser {
token = parseArguments(token);
} else {
listener.handleNoArguments(token);
- token = reportUnrecoverableError(token, ErrorKind.UnexpectedToken);
+ token = reportUnrecoverableError(token, ErrorKind.UnexpectedToken)?.next;
}
return token;
}
@@ -3530,7 +3542,7 @@ class Parser {
} else {
arguments ??= {};
arguments.putIfAbsent("actual", () => token.value);
- next = listener.handleUnrecoverableError(token, kind, arguments)?.next;
+ next = listener.handleUnrecoverableError(token, kind, arguments);
}
return next ?? skipToEof(token);
}
@@ -3581,7 +3593,7 @@ class Parser {
listener.handleRecoverableError(token, kind, arguments);
return null;
} else {
- return listener.handleUnrecoverableError(token, kind, arguments)?.next;
+ return listener.handleUnrecoverableError(token, kind, arguments);
}
}
}
« no previous file with comments | « no previous file | pkg/front_end/lib/src/fasta/source/diet_parser.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698