diff --git a/src/check_type.cpp b/src/check_type.cpp index 4fa02fd5f..2fcd7ff24 100644 --- a/src/check_type.cpp +++ b/src/check_type.cpp @@ -3507,6 +3507,7 @@ gb_internal bool check_type_internal(CheckerContext *ctx, Ast *e, Type **type, T if (!ctx->in_polymorphic_specialization && ctx->disallow_polymorphic_return_types) { Type *t = base_type(elem); if (t != nullptr && + unparen_expr(pt->type)->kind == Ast_Ident && is_type_polymorphic_record_unspecialized(t)) { gbString err_str = expr_to_string(e); error(e, "Invalid use of a non-specialized polymorphic type '%s'", err_str);