diff options
Diffstat (limited to 'src/typecheck.c')
| -rw-r--r-- | src/typecheck.c | 3 |
1 files changed, 2 insertions, 1 deletions
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 { |
