Better error for int Foo(int a) declarations #1516

This commit is contained in:
Christoffer Lerno
2024-10-04 18:15:06 +02:00
parent 77ac864995
commit 6fabecac1a
3 changed files with 11 additions and 2 deletions

View File

@@ -1134,6 +1134,14 @@ static inline Decl *parse_global_declaration(ParseContext *c)
{
if (token_is_some_ident(c->tok))
{
if ((c->tok == TOKEN_TYPE_IDENT || c->tok == TOKEN_CONST_IDENT) &&
c->lexer.token_type == TOKEN_LPAREN)
{
PRINT_ERROR_HERE("This looks like the beginning of a C style function declaration. "
"Unfortunately it seems to be missing the initial 'fn' and "
"the function name does not start with a lower case.");
return poisoned_decl;
}
PRINT_ERROR_HERE("I expected a variable name here, but global variables need to start with lower case.");
return poisoned_decl;
}