From 52680a81feb0594b44f953c85150e84b44a5a4ae Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Thu, 16 Oct 2025 15:57:43 -0700 Subject: [PATCH] require data field members when looking for links w/ list lens; config node ptr lists need dll --- src/config/config_core.c | 4 ++-- src/eval/eval_types.c | 4 ++++ src/mule/mule_main.cpp | 8 ++++++++ 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/config/config_core.c b/src/config/config_core.c index e41f8ed1..65ad565e 100644 --- a/src/config/config_core.c +++ b/src/config/config_core.c @@ -31,7 +31,7 @@ internal void cfg_node_ptr_list_push(Arena *arena, CFG_NodePtrList *list, CFG_Node *node) { CFG_NodePtrNode *n = push_array(arena, CFG_NodePtrNode, 1); - SLLQueuePush(list->first, list->last, n); + DLLPushBack(list->first, list->last, n); list->count += 1; n->v = node; } @@ -40,7 +40,7 @@ internal void cfg_node_ptr_list_push_front(Arena *arena, CFG_NodePtrList *list, CFG_Node *node) { CFG_NodePtrNode *n = push_array(arena, CFG_NodePtrNode, 1); - SLLQueuePushFront(list->first, list->last, n); + DLLPushFront(list->first, list->last, n); list->count += 1; n->v = node; } diff --git a/src/eval/eval_types.c b/src/eval/eval_types.c index 1d29a8d9..f509145b 100644 --- a/src/eval/eval_types.c +++ b/src/eval/eval_types.c @@ -2744,6 +2744,10 @@ E_TYPE_IREXT_FUNCTION_DEF(list) { for EachIndex(idx, node_type->count) { + if(node_type->members[idx].kind != E_MemberKind_DataField) + { + continue; + } E_TypeKey member_type_key = node_type->members[idx].type_key; E_TypeKey member_type_key_undecorated = e_type_key_unwrap(member_type_key, E_TypeUnwrapFlag_AllDecorative); E_TypeKey member_ptee_type_key = e_type_key_unwrap(member_type_key_undecorated, E_TypeUnwrapFlag_All); diff --git a/src/mule/mule_main.cpp b/src/mule/mule_main.cpp index 28bb2355..e0383f61 100644 --- a/src/mule/mule_main.cpp +++ b/src/mule/mule_main.cpp @@ -8,6 +8,7 @@ #include #include +#include #include #if !_WIN32 # define RADDBG_MARKUP_STUBS @@ -663,6 +664,13 @@ type_coverage_eval_tests(void) int_vector.push_back(6); int_vector.push_back(7); + std::unordered_map people = + { + {"Peter", 1}, + {"Oliver", 2}, + {"Jack", 3}, + }; + std::vector *pint_vector = &int_vector; std::vector &rint_vector = int_vector;