From 0df9c8bffc3f468cab08eaad97b49952a0b6bf3e Mon Sep 17 00:00:00 2001 From: gingerBill Date: Mon, 8 Apr 2024 12:04:33 +0100 Subject: [PATCH] Improve error messages for people using keywords instead of identifiers --- src/parser.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/parser.cpp b/src/parser.cpp index bf16f5c9f..01a3069ff 100644 --- a/src/parser.cpp +++ b/src/parser.cpp @@ -1486,7 +1486,15 @@ gb_internal Token expect_token(AstFile *f, TokenKind kind) { syntax_error(f->curr_token, "Expected '%.*s', got '%.*s'", LIT(c), LIT(p)); if (kind == Token_Ident) switch (prev.kind) { case Token_context: - error_line("\tSuggestion: 'context' is a reserved keyword, would 'ctx' suffice?\n"); + error_line("\tSuggestion: '%.*s' is a keyword, would 'ctx' suffice?\n", LIT(prev.string)); + break; + case Token_package: + error_line("\tSuggestion: '%.*s' is a keyword, would 'pkg' suffice?\n", LIT(prev.string)); + break; + default: + if (token_is_keyword(prev.kind)) { + error_line("\tNote: '%.*s' is a keyword\n", LIT(prev.string)); + } break; }