From fee80682b11ff0dff92a141cbd7c30682be93fd7 Mon Sep 17 00:00:00 2001 From: Christoffer Lerno Date: Tue, 27 Jun 2023 10:19:09 +0200 Subject: [PATCH] Update to error message when expecting a type. --- src/compiler/parse_global.c | 9 ++++++++- test/test_suite/define/common.c3 | 2 +- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/compiler/parse_global.c b/src/compiler/parse_global.c index 574c0ed82..558a4484d 100644 --- a/src/compiler/parse_global.c +++ b/src/compiler/parse_global.c @@ -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) diff --git a/test/test_suite/define/common.c3 b/test/test_suite/define/common.c3 index f04a6d4c6..903fce882 100644 --- a/test/test_suite/define/common.c3 +++ b/test/test_suite/define/common.c3 @@ -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.