From 782286357b2bc6a2f789b18744921b5b5b7b65c4 Mon Sep 17 00:00:00 2001 From: Karl Zylinski Date: Wed, 3 Jul 2024 22:21:32 +0200 Subject: [PATCH] error on type_of(value of untyped type) --- src/check_builtin.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/check_builtin.cpp b/src/check_builtin.cpp index 7a1a8b9ee..5a8d9b782 100644 --- a/src/check_builtin.cpp +++ b/src/check_builtin.cpp @@ -2290,6 +2290,14 @@ gb_internal bool check_builtin_procedure(CheckerContext *c, Operand *operand, As error(o.expr, "Invalid argument to 'type_of'"); return false; } + + if (is_type_untyped(o.type)) { + gbString t = type_to_string(o.type); + error(o.expr, "'type_of' of %s cannot be determined", t); + gb_string_free(t); + return false; + } + // NOTE(bill): Prevent type cycles for procedure declarations if (c->curr_proc_sig == o.type) { gbString s = expr_to_string(o.expr);