mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-10-05 22:02:55 +01:00
Change return of SkipPastLikelyEnd to be last consumed token (#3493)
This approach means the parse subtree includes the full token range consumed. --------- Co-authored-by: Jon Ross-Perkins <jperkins@google.com>
This commit is contained in:
co-authored by
Jon Ross-Perkins
parent
1addf10054
commit
6067ca3f49
@@ -35,8 +35,8 @@ auto HandleVarAsReturned(Context& context) -> void {
|
||||
CARBON_DIAGNOSTIC(ExpectedVarAfterReturned, Error,
|
||||
"Expected `var` after `returned`.");
|
||||
context.emitter().Emit(*context.position(), ExpectedVarAfterReturned);
|
||||
auto semi = context.SkipPastLikelyEnd(returned_token);
|
||||
context.AddLeafNode(NodeKind::EmptyDecl, semi ? *semi : returned_token,
|
||||
context.AddLeafNode(NodeKind::EmptyDecl,
|
||||
context.SkipPastLikelyEnd(returned_token),
|
||||
/*has_error=*/true);
|
||||
context.PopAndDiscardState();
|
||||
return;
|
||||
@@ -76,9 +76,7 @@ auto HandleVarFinishAsDecl(Context& context) -> void {
|
||||
// TODO: Disambiguate between statement and member declaration.
|
||||
context.EmitExpectedDeclSemi(Lex::TokenKind::Var);
|
||||
state.has_error = true;
|
||||
if (auto semi_token = context.SkipPastLikelyEnd(state.token)) {
|
||||
end_token = *semi_token;
|
||||
}
|
||||
end_token = context.SkipPastLikelyEnd(state.token);
|
||||
}
|
||||
context.AddNode(NodeKind::VariableDecl, end_token, state.subtree_start,
|
||||
state.has_error);
|
||||
|
||||
Reference in New Issue
Block a user