From 914273d5af20295c533b9a4b482d342e6e5b58d5 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Thu, 22 May 2025 12:29:56 -0700 Subject: [PATCH] hack in quick fix for overambitious type pattern matching - will do a better pass shortly... --- src/eval/eval_core.c | 5 +++++ src/mule/mule_main.cpp | 18 ++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/src/eval/eval_core.c b/src/eval/eval_core.c index 158dc310..b782918b 100644 --- a/src/eval/eval_core.c +++ b/src/eval/eval_core.c @@ -1090,6 +1090,11 @@ e_auto_hook_exprs_from_type_key(Arena *arena, E_TypeKey type_key) break; } scan_pos = pattern_part_pos + n->string.size; + if(n->next == 0 && scan_pos < type_string.size) + { + fits_this_type_string = 0; + break; + } } if(fits_this_type_string) { diff --git a/src/mule/mule_main.cpp b/src/mule/mule_main.cpp index 72136675..6889ce7a 100644 --- a/src/mule/mule_main.cpp +++ b/src/mule/mule_main.cpp @@ -159,6 +159,14 @@ struct Dynamic_Array }; raddbg_type_view(Dynamic_Array, slice($)); +template +struct TemplatedDynamicArray +{ + T *v; + int count; +}; +raddbg_type_view(TemplatedDynamicArray, rows($, count, array(v, count))); + struct Struct_With_Embedded_Arrays { int x; @@ -427,6 +435,16 @@ type_coverage_eval_tests(void) 6 }; + TemplatedDynamicArray templated_dynamic = {dynamic.pairs, dynamic.count}; + TemplatedDynamicArray templated_dynamics[] = + { + {dynamic.pairs, dynamic.count}, + {dynamic.pairs, dynamic.count}, + {dynamic.pairs, dynamic.count}, + {dynamic.pairs, dynamic.count}, + {dynamic.pairs, dynamic.count}, + }; + raddbg_pin(columns(sequence(6), fixed.pairs[$], memory_[$])); raddbg_pin(basics); raddbg_pin(fixed);