From d2d5c40e765b3562731e55e32cc178b7aaea9e1f Mon Sep 17 00:00:00 2001 From: gingerBill Date: Mon, 12 May 2025 16:49:59 +0100 Subject: [PATCH] Handle "untyped" case --- src/check_builtin.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/check_builtin.cpp b/src/check_builtin.cpp index f01b61128..8efaf6b26 100644 --- a/src/check_builtin.cpp +++ b/src/check_builtin.cpp @@ -3363,7 +3363,15 @@ gb_internal bool check_builtin_procedure(CheckerContext *c, Operand *operand, As } if (all_types_the_same) { - operand->type = alloc_type_array(last_type, value_count); + Type *elem_type = default_type(last_type); + if (is_type_untyped(elem_type)) { + gbString s = expr_to_string(call); + error(call, "Invalid use of '%s' in '%.*s'", s, LIT(builtin_name)); + gb_string_free(s); + return false; + } + + operand->type = alloc_type_array(elem_type, value_count); operand->mode = Addressing_Value; } else { Type *st = alloc_type_struct_complete();