From 364a76e8e902e5957668464ab87184c7411e2e10 Mon Sep 17 00:00:00 2001 From: kalsprite Date: Mon, 17 Aug 2026 19:08:13 -0700 Subject: [PATCH] check_stmt: reject a built-in procedure assigned to --- src/check_stmt.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/check_stmt.cpp b/src/check_stmt.cpp index c5657f008..31825bb34 100644 --- a/src/check_stmt.cpp +++ b/src/check_stmt.cpp @@ -444,6 +444,19 @@ gb_internal Type *check_assignment_variable(CheckerContext *ctx, Operand *lhs, O expr_str, LIT(context_name)); rhs->mode = Addressing_Invalid; + return nullptr; + } + case Addressing_Builtin: { + // a builtin is not a value + gbString expr_str = expr_to_string(rhs->expr); + defer (gb_string_free(expr_str)); + + error(rhs->expr, + "Cannot assign built-in procedure '%s' in %.*s", + expr_str, + LIT(context_name)); + rhs->mode = Addressing_Invalid; + return nullptr; } case Addressing_Invalid: return nullptr;