Refactor diagnostics out of parser_context.h (#2834)

This is addressing an issue left behind by the context switch, removing a few diagnostics that had been in the header rather than figuring out proper homes. I'm splitting one for semis a little further, sharing one, and then the other two are actually able to be moved into more specific homes as-is (one is only used in one place, clearly an oversight that it wasn't there already).
This commit is contained in:
Jon Ross-Perkins
2023-05-18 12:45:08 -07:00
committed by GitHub
parent 75f1ac3a08
commit 8ad08e34e2
17 changed files with 43 additions and 40 deletions
+4 -1
View File
@@ -52,7 +52,10 @@ auto ParserHandleVarFinishAsSemicolon(ParserContext& context) -> void {
if (context.PositionIs(TokenKind::Semi)) {
end_token = context.Consume();
} else {
context.emitter().Emit(*context.position(), ExpectedSemiAfterExpression);
// TODO: Disambiguate between statement and member declaration.
CARBON_DIAGNOSTIC(ExpectedSemiAfterVar, Error,
"Expected `;` to terminate `var` declaration.");
context.emitter().Emit(*context.position(), ExpectedSemiAfterVar);
state.has_error = true;
if (auto semi_token = context.SkipPastLikelyEnd(state.token)) {
end_token = *semi_token;