From 472c49de25f3ee4117f9125b80a12b2c517d800a Mon Sep 17 00:00:00 2001 From: Christoffer Lerno Date: Thu, 5 Feb 2026 16:20:17 +0100 Subject: [PATCH] Differentiate errors on generic mismatch. --- src/compiler/sema_name_resolution.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/compiler/sema_name_resolution.c b/src/compiler/sema_name_resolution.c index 60a955b4e..3ae5f0834 100644 --- a/src/compiler/sema_name_resolution.c +++ b/src/compiler/sema_name_resolution.c @@ -888,6 +888,10 @@ INLINE bool sema_resolve_symbol_common(SemaContext *context, NameResolve *name_r if (candidate) return name_resolve->found = candidate, true; } if (name_resolve->suppress_error) return name_resolve->found = NULL, true; + if (context->generic_instance) + { + RETURN_SEMA_ERROR_AT(name_resolve->span, "'%s' is a generic %s. It was initialized in a generic context that didn't match its definition, so explicit parameters are needed.", found->name, decl_to_name(found)); + } RETURN_SEMA_ERROR_AT(name_resolve->span, "'%s' is a generic %s, did you forget the parameters '{ ... }'?", found->name, decl_to_name(found)); } if (!name_resolve->is_parameterized) return true;