[parser] Add beforeSynthetic to Synthetic*

Follow-up to https://dart-review.googlesource.com/c/sdk/+/205799

Change-Id: I620bf4548095d0597b89e4b6305c2301bcbed144
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/230242
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
This commit is contained in:
Jens Johansen
2022-01-28 08:54:13 +00:00
committed by Commit Bot
parent 1307a78707
commit c2b2aa5b9a
24 changed files with 60 additions and 58 deletions
@@ -733,6 +733,9 @@ class SyntheticBeginToken extends BeginToken {
[CommentToken? precedingComment])
: super(type, offset, precedingComment);
@override
Token? beforeSynthetic;
@override
Token copy() =>
new SyntheticBeginToken(type, offset, copyComments(precedingComments));
@@ -754,6 +757,9 @@ class SyntheticKeywordToken extends KeywordToken {
*/
SyntheticKeywordToken(Keyword keyword, int offset) : super(keyword, offset);
@override
Token? beforeSynthetic;
@override
int get length => 0;
@@ -1683,9 +1683,9 @@ class Wrong<T> {
void test_invalidTypedef() {
parseCompilationUnit("typedef var Function(var arg);", errors: [
expectedError(ParserErrorCode.EXPECTED_TOKEN, 0, 7),
expectedError(ParserErrorCode.MISSING_IDENTIFIER, 8, 3),
expectedError(ParserErrorCode.MISSING_TYPEDEF_PARAMETERS, 8, 3),
expectedError(ParserErrorCode.EXPECTED_TOKEN, 8, 3),
expectedError(ParserErrorCode.VAR_RETURN_TYPE, 8, 3),
expectedError(ParserErrorCode.MISSING_FUNCTION_BODY, 29, 1),
]);
@@ -6,11 +6,9 @@ f() { m(T<R(<Z
WARNING: Reporting at eof --- see below for details.
parser/error_recovery/issue_38415.crash:1:15: Expected ';' after this.
parser/error_recovery/issue_38415.crash:1:14: Expected ';' after this.
f() { m(T<R(<Z
^...
WARNING: Reporting at eof --- see below for details.
^
parser/error_recovery/issue_38415.crash:1:12: Can't find ')' to match '('.
f() { m(T<R(<Z
@@ -64,8 +62,7 @@ beginCompilationUnit(f)
endBinaryExpression(<)
endArguments(1, (, ))
handleSend(m, })
handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], , )
// WARNING: Reporting at eof for .
handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], Z, Z)
handleExpressionStatement(;)
endBlockFunctionBody(1, {, })
endTopLevelMethod(f, null, })
@@ -102,9 +102,8 @@ parseUnit(UnmatchedToken(())
listener: endArguments(1, (, ))
listener: handleSend(m, })
ensureSemicolon())
reportRecoverableError([, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], , )
listener: // WARNING: Reporting at eof for .
reportRecoverableError(Z, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], Z, Z)
rewriter()
listener: handleExpressionStatement(;)
notEofOrValue(}, })
@@ -41,7 +41,7 @@ parseUnit(UnmatchedToken(())
rewriter()
listener: handleLiteralList(0, [, null, ])
ensureSemicolon(])
reportRecoverableError([, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
reportRecoverableError((, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
rewriter()
listener: handleExpressionStatement(;)
notEofOrValue(}, })
@@ -41,7 +41,7 @@ parseUnit({)
rewriter()
listener: handleLiteralList(0, [, null, ])
ensureSemicolon(])
reportRecoverableError([, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
reportRecoverableError(>, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
rewriter()
listener: handleExpressionStatement(;)
notEofOrValue(}, })
@@ -12,9 +12,9 @@ parser/error_recovery/issue_39060:3:1: Expected '[' before this.
}
^
parser/error_recovery/issue_39060:3:1: Expected ';' after this.
}
^
parser/error_recovery/issue_39060:2:9: Expected ';' after this.
{s A<}>
^
beginCompilationUnit(main)
beginMetadataStar(main)
@@ -49,7 +49,7 @@ beginCompilationUnit(main)
endTypeArguments(1, <, >)
handleRecoverableError(Message[ExpectedButGot, Expected '[' before this., null, {string: [}], }, })
handleLiteralList(0, [, null, ])
handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], }, })
handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], >, >)
handleExpressionStatement(;)
endBlock(2, {, }, BlockKind(statement))
endBlockFunctionBody(1, {, )
@@ -85,8 +85,8 @@ parseUnit(main)
rewriter()
listener: handleLiteralList(0, [, null, ])
ensureSemicolon(])
reportRecoverableError([, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], }, })
reportRecoverableError(>, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], >, >)
rewriter()
listener: handleExpressionStatement(;)
notEofOrValue(}, })
@@ -112,9 +112,9 @@ parser/error_recovery/keyword_named_class_methods:75:3: Expected an identifier,
}
^
parser/error_recovery/keyword_named_class_methods:75:3: Expected ';' after this.
}
^
parser/error_recovery/keyword_named_class_methods:74:23: Expected ';' after this.
return do(x-1) + 1;
^
parser/error_recovery/keyword_named_class_methods:82:7: 'else' can't be used as an identifier because it's a keyword.
int else(int x) {
@@ -1394,7 +1394,7 @@ beginCompilationUnit(class)
handleNoArguments())
handleSend(, ))
handleParenthesizedCondition(()
handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], }, })
handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], ;, ;)
endDoWhileStatement(do, while, ;)
endBlockFunctionBody(3, {, })
endClassMethod(null, int, (, null, })
@@ -2325,8 +2325,8 @@ parseUnit(class)
ensureCloseParen(, ()
listener: handleParenthesizedCondition(()
ensureSemicolon())
reportRecoverableError((, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], }, })
reportRecoverableError(;, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], ;, ;)
rewriter()
listener: endDoWhileStatement(do, while, ;)
notEofOrValue(}, })
@@ -112,9 +112,9 @@ parser/error_recovery/keyword_named_top_level_methods:74:1: Expected an identifi
}
^
parser/error_recovery/keyword_named_top_level_methods:74:1: Expected ';' after this.
}
^
parser/error_recovery/keyword_named_top_level_methods:73:21: Expected ';' after this.
return do(x-1) + 1;
^
parser/error_recovery/keyword_named_top_level_methods:81:5: 'else' can't be used as an identifier because it's a keyword.
int else(int x) {
@@ -1359,7 +1359,7 @@ beginCompilationUnit(int)
handleNoArguments())
handleSend(, ))
handleParenthesizedCondition(()
handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], }, })
handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], ;, ;)
endDoWhileStatement(do, while, ;)
endBlockFunctionBody(3, {, })
endTopLevelMethod(int, null, })
@@ -2241,8 +2241,8 @@ parseUnit(int)
ensureCloseParen(, ()
listener: handleParenthesizedCondition(()
ensureSemicolon())
reportRecoverableError((, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], }, })
reportRecoverableError(;, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], ;, ;)
rewriter()
listener: endDoWhileStatement(do, while, ;)
notEofOrValue(}, })
@@ -436,9 +436,9 @@ parser/error_recovery/keyword_named_typedefs:132:14: A typedef needs an explicit
typedef void = void Function();
^
parser/error_recovery/keyword_named_typedefs:132:14: Expected ';' after this.
parser/error_recovery/keyword_named_typedefs:132:9: Expected ';' after this.
typedef void = void Function();
^
^^^^
parser/error_recovery/keyword_named_typedefs:132:14: Expected a declaration, but got '='.
typedef void = void Function();
@@ -2219,7 +2219,7 @@ beginCompilationUnit(typedef)
handleRecoverableError(MissingTypedefParameters, =, =)
beginFormalParameters((, MemberKind.FunctionTypeAlias)
endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], =, =)
handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], void, void)
endTypedef(typedef, null, ;)
endTopLevelDeclaration(=)
beginMetadataStar(=)
@@ -3057,8 +3057,8 @@ parseUnit(typedef)
listener: beginFormalParameters((, MemberKind.FunctionTypeAlias)
listener: endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
ensureSemicolon())
reportRecoverableError((, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], =, =)
reportRecoverableError(void, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], void, void)
rewriter()
listener: endTypedef(typedef, null, ;)
listener: endTopLevelDeclaration(=)
@@ -38,9 +38,9 @@ library /*isNonNullableByDefault*/;
// f() { m(T<R(<Z
// ^
//
// pkg/front_end/testcases/general/error_recovery/issue_38415.crash_dart:1:15: Error: Expected ';' after this.
// pkg/front_end/testcases/general/error_recovery/issue_38415.crash_dart:1:14: Error: Expected ';' after this.
// f() { m(T<R(<Z
// ^...
// ^
//
import self as self;
@@ -38,9 +38,9 @@ library /*isNonNullableByDefault*/;
// f() { m(T<R(<Z
// ^
//
// pkg/front_end/testcases/general/error_recovery/issue_38415.crash_dart:1:15: Error: Expected ';' after this.
// pkg/front_end/testcases/general/error_recovery/issue_38415.crash_dart:1:14: Error: Expected ';' after this.
// f() { m(T<R(<Z
// ^...
// ^
//
import self as self;
@@ -38,9 +38,9 @@ library /*isNonNullableByDefault*/;
// f() { m(T<R(<Z
// ^
//
// pkg/front_end/testcases/general/error_recovery/issue_38415.crash_dart:1:15: Error: Expected ';' after this.
// pkg/front_end/testcases/general/error_recovery/issue_38415.crash_dart:1:14: Error: Expected ';' after this.
// f() { m(T<R(<Z
// ^...
// ^
//
import self as self;
@@ -22,9 +22,9 @@ library;
// }
// ^
//
// pkg/front_end/testcases/general/error_recovery/issue_39060.dart:4:1: Error: Expected ';' after this.
// }
// ^
// pkg/front_end/testcases/general/error_recovery/issue_39060.dart:3:9: Error: Expected ';' after this.
// {s A<}>
// ^
//
import self as self;
@@ -22,9 +22,9 @@ library;
// }
// ^
//
// pkg/front_end/testcases/general/error_recovery/issue_39060.dart:4:1: Error: Expected ';' after this.
// }
// ^
// pkg/front_end/testcases/general/error_recovery/issue_39060.dart:3:9: Error: Expected ';' after this.
// {s A<}>
// ^
//
import self as self;
@@ -22,9 +22,9 @@ library;
// }
// ^
//
// pkg/front_end/testcases/general/error_recovery/issue_39060.dart:4:1: Error: Expected ';' after this.
// }
// ^
// pkg/front_end/testcases/general/error_recovery/issue_39060.dart:3:9: Error: Expected ';' after this.
// {s A<}>
// ^
//
import self as self;
import "dart:core" as core;
@@ -6,9 +6,9 @@ library;
// C c = new Object)();
// ^^^^^^
//
// pkg/front_end/testcases/rasta/issue_000046.dart:6:19: Error: Expected ';' after this.
// pkg/front_end/testcases/rasta/issue_000046.dart:6:13: Error: Expected ';' after this.
// C c = new Object)();
// ^
// ^^^^^^
//
// pkg/front_end/testcases/rasta/issue_000046.dart:6:19: Error: Expected a class member, but got ')'.
// C c = new Object)();
@@ -6,9 +6,9 @@ library;
// C c = new Object)();
// ^^^^^^
//
// pkg/front_end/testcases/rasta/issue_000046.dart:6:19: Error: Expected ';' after this.
// pkg/front_end/testcases/rasta/issue_000046.dart:6:13: Error: Expected ';' after this.
// C c = new Object)();
// ^
// ^^^^^^
//
// pkg/front_end/testcases/rasta/issue_000046.dart:6:19: Error: Expected a class member, but got ')'.
// C c = new Object)();
@@ -6,9 +6,9 @@ library;
// C c = new Object)();
// ^^^^^^
//
// pkg/front_end/testcases/rasta/issue_000046.dart:6:19: Error: Expected ';' after this.
// pkg/front_end/testcases/rasta/issue_000046.dart:6:13: Error: Expected ';' after this.
// C c = new Object)();
// ^
// ^^^^^^
//
// pkg/front_end/testcases/rasta/issue_000046.dart:6:19: Error: Expected a class member, but got ')'.
// C c = new Object)();
@@ -6,9 +6,9 @@ library;
// C c = new Object)();
// ^^^^^^
//
// pkg/front_end/testcases/rasta/issue_000046.dart:6:19: Error: Expected ';' after this.
// pkg/front_end/testcases/rasta/issue_000046.dart:6:13: Error: Expected ';' after this.
// C c = new Object)();
// ^
// ^^^^^^
//
// pkg/front_end/testcases/rasta/issue_000046.dart:6:19: Error: Expected a class member, but got ')'.
// C c = new Object)();