| 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 1f3c4776c62ef57f1d9c28bdd6ca5ad6e53f50d9..d649430c4708945da3fe91112e6107b7803423a0 100644
|
| --- a/pkg/front_end/lib/src/fasta/parser/parser.dart
|
| +++ b/pkg/front_end/lib/src/fasta/parser/parser.dart
|
| @@ -3204,10 +3204,11 @@ class Parser {
|
| Token forToken = token;
|
| listener.beginForStatement(forToken);
|
| token = expect('for', token);
|
| + Token leftParenthesis = token;
|
| token = expect('(', token);
|
| token = parseVariablesDeclarationOrExpressionOpt(token);
|
| if (optional('in', token)) {
|
| - return parseForInRest(awaitToken, forToken, token);
|
| + return parseForInRest(awaitToken, forToken, leftParenthesis, token);
|
| } else {
|
| if (awaitToken != null) {
|
| reportRecoverableError(awaitToken, ErrorKind.InvalidAwaitFor);
|
| @@ -3260,18 +3261,21 @@ class Parser {
|
| return token;
|
| }
|
|
|
| - Token parseForInRest(Token awaitToken, Token forToken, Token token) {
|
| + Token parseForInRest(
|
| + Token awaitToken, Token forToken, Token leftParenthesis, Token token) {
|
| assert(optional('in', token));
|
| Token inKeyword = token;
|
| token = token.next;
|
| listener.beginForInExpression(token);
|
| token = parseExpression(token);
|
| listener.endForInExpression(token);
|
| + Token rightParenthesis = token;
|
| token = expect(')', token);
|
| listener.beginForInBody(token);
|
| token = parseStatement(token);
|
| listener.endForInBody(token);
|
| - listener.endForIn(awaitToken, forToken, inKeyword, token);
|
| + listener.endForIn(awaitToken, forToken, leftParenthesis, inKeyword,
|
| + rightParenthesis, token);
|
| return token;
|
| }
|
|
|
|
|