Update to error message when expecting a type.

This commit is contained in:
Christoffer Lerno
2023-06-27 10:19:09 +02:00
parent b88916214f
commit fee80682b1
2 changed files with 9 additions and 2 deletions

View File

@@ -464,7 +464,14 @@ static inline TypeInfo *parse_base_type(ParseContext *c)
type_found = type_from_token(c->tok);
break;
default:
SEMA_ERROR_HERE("A type name was expected here.");
if (c->tok == TOKEN_IDENT)
{
SEMA_ERROR_HERE("A type name was expected, but this looks a variable or function name (as it doesn't start with an uppercase letter).");
}
else
{
SEMA_ERROR_HERE("A type name was expected here.");
}
return poisoned_type_info;
}
if (type_found)

View File

@@ -11,7 +11,7 @@ def fn foo = fef; // #error: A type, variable, constant or attribute name was ex
def feokfe = fn void(int); // #error: Expected a function or variable name here
def AOFKE = ofek; // #error: Expected a constant name here
def okfoe = OFKEOK; // #error: Expected a function or variable name here
def Helo = helo; // #error: A type name was expected here
def Helo = helo; // #error: A type name was expected, but this looks a variable
def Helo = OFKE; // #error: A type name was expected here
def helo = Helo; // #error: A type alias must start with an uppercase letter and contain at least one lower case letter.
def HELO = Helo; // #error: A type alias must start with an uppercase letter and contain at least one lower case letter.