mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-06-13 07:32:23 -07:00
derefence pointer/reference evaluations when generating block tree, to match expected behavior, & what the string iterator does
This commit is contained in:
@@ -528,6 +528,18 @@ ev_block_tree_from_eval(Arena *arena, EV_View *view, String8 filter, E_Eval root
|
||||
// rjf: unpack eval
|
||||
E_Mode mode = t->eval.irtree.mode;
|
||||
E_Eval eval = t->eval;
|
||||
|
||||
// rjf: pointers/reference evaluations -> dereference for expansion
|
||||
{
|
||||
E_TypeKey type_key = e_type_key_unwrap(eval.irtree.type_key, E_TypeUnwrapFlag_Modifiers|E_TypeUnwrapFlag_Meta);
|
||||
E_TypeKind type_kind = e_type_kind_from_key(type_key);
|
||||
if(e_type_kind_is_pointer_or_ref(type_kind))
|
||||
{
|
||||
eval = e_eval_wrapf(eval, "*($)");
|
||||
}
|
||||
}
|
||||
|
||||
// rjf: unpack type key we'll use for expanding this eval
|
||||
E_TypeKey expansion_type_key = ev_expansion_type_from_key(eval.irtree.type_key);
|
||||
if(!e_type_key_match(expansion_type_key, e_type_key_zero()))
|
||||
{
|
||||
|
||||
@@ -626,6 +626,9 @@ type_coverage_eval_tests(void)
|
||||
int_vector.push_back(6);
|
||||
int_vector.push_back(7);
|
||||
|
||||
std::vector<int> *pint_vector = &int_vector;
|
||||
std::vector<int> &rint_vector = int_vector;
|
||||
|
||||
std::vector<Dynamic_Array> dynamic_array_vector;
|
||||
dynamic_array_vector.push_back(dynamic);
|
||||
dynamic_array_vector.push_back(dynamic);
|
||||
|
||||
Reference in New Issue
Block a user