From 3f69b028e48ea4242149226b7c652b43c70d7b68 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Sat, 12 Apr 2025 07:34:27 -0700 Subject: [PATCH] fix ptr-to-ptr expansions --- src/eval/eval_types.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/eval/eval_types.c b/src/eval/eval_types.c index 57a3c53e..34b0f507 100644 --- a/src/eval/eval_types.c +++ b/src/eval/eval_types.c @@ -1894,6 +1894,7 @@ internal E_TypeKey e_default_expansion_type_from_key(E_TypeKey root_key) { E_TypeKey type_key = zero_struct; + B32 hit_1ptr = 0; for(E_TypeKey key = root_key; !e_type_key_match(e_type_key_zero(), key); key = e_type_direct_from_key(key)) @@ -1913,8 +1914,13 @@ e_default_expansion_type_from_key(E_TypeKey root_key) E_Type *type = e_type_from_key__cached(key); if(!e_type_key_match(e_type_key_basic(E_TypeKind_Void), type->direct_type_key)) { - if(type->count == 1) + if(type->count == 1 && hit_1ptr) { + type_key = key; + } + else if(type->count == 1 && !hit_1ptr) + { + hit_1ptr = 1; done = 0; } else if(type->count > 1)