fc67d31862
When the parser sends events to the listener some events has a pair of parameters, `beginToken` and `endToken`. Most of these are constructed in such a way that the `beginToken` is the first token and the `endToken` is the last token in that construct. This is for instance the case with `endClassDeclaration`. It was, however, not the case for `endMetadata` where `endToken` instead was the next token *not* in the metadata. In this CL I've found a changed the following to point to the last token in the construct instead of the next token not in the construct and renamed the parameter where it made sense: * `endAssert` --- and renamed `semicolonToken` (which only pointed to a semicolon for statements) to `endToken`. * `endAwaitExpression` * `endConstLiteral` --- and renamed `token` to `endToken` * `endConstructorReference` * `endFieldInitializer` --- and renamed `token` to `endToken` * `endForIn` * `endForInBody` --- and renamed `token` to `endToken` * `endForStatement` * `endForStatementBody` --- and renamed `token` to `endToken` * `endFunctionExpression` --- and renamed `token` to `endToken` * `endInitializer` --- and renamed `token` to `endToken` * `endInitializers` * `endInvalidAwaitExpression` * `endMetadata` * `endSwitchCase` * `endTopLevelDeclaration` --- and renamed `nextToken` to `endToken` * `endWhileStatement` * `endWhileStatementBody` --- and renamed `token` to `endToken` * `handleNoConstructorReferenceContinuationAfterTypeArguments` In the few places in listeners where these values were used I've mostly updated to do e.g. `endToken.text!` to retain the current behavior. Change-Id: I25495e160d1eec5c75bcf1313b512cd04bcb1533 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/364322 Reviewed-by: Johnni Winther <johnniwinther@google.com> Reviewed-by: Brian Wilkerson <brianwilkerson@google.com> Commit-Queue: Jens Johansen <jensj@google.com>
24 lines
867 B
Plaintext
24 lines
867 B
Plaintext
Problems reported:
|
|
|
|
parser/patterns/patternVariableDeclaration_topLevel:1:5: A pattern variable declaration may not appear outside a function or method.
|
|
var (a, b) = (0, 1);
|
|
^^^^^^
|
|
|
|
beginCompilationUnit(var)
|
|
beginMetadataStar(var)
|
|
endMetadataStar(0)
|
|
beginTopLevelMember(var)
|
|
handleRecoverableError(PatternVariableDeclarationOutsideFunctionOrMethod, (, ))
|
|
beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, )
|
|
handleNoType(var)
|
|
handleIdentifier(, topLevelVariableDeclaration)
|
|
beginFieldInitializer(=)
|
|
beginParenthesizedExpressionOrRecordLiteral(()
|
|
handleLiteralInt(0)
|
|
handleLiteralInt(1)
|
|
endRecordLiteral((, 2, null)
|
|
endFieldInitializer(=, ))
|
|
endTopLevelFields(null, null, null, null, null, var, 1, var, ;)
|
|
endTopLevelDeclaration(;)
|
|
endCompilationUnit(1, )
|