From d2bee9ce7401672cae5cf02cf15dfa0ee48c2352 Mon Sep 17 00:00:00 2001 From: Bruce Hill Date: Mon, 7 Apr 2025 15:13:07 -0400 Subject: Fix for (&table).keys being seen as mutable --- src/typecheck.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/typecheck.c') diff --git a/src/typecheck.c b/src/typecheck.c index fedc7c96..f5acad31 100644 --- a/src/typecheck.c +++ b/src/typecheck.c @@ -1599,7 +1599,8 @@ PUREFUNC bool can_be_mutated(env_t *env, ast_t *ast) auto access = Match(ast, FieldAccess); type_t *fielded_type = get_type(env, access->fielded); if (fielded_type->tag == PointerType) { - return true; + type_t *val = value_type(fielded_type); + return val->tag == StructType; } else if (fielded_type->tag == StructType) { return can_be_mutated(env, access->fielded); } else { -- cgit v1.2.3