fix expansion rules being applied to traditionally non-expandable type info; plug memory view back in

This commit is contained in:
Ryan Fleury
2025-02-10 16:32:07 -08:00
parent 29033fe6cc
commit 80b0138ea3
2 changed files with 12 additions and 12 deletions
@@ -537,8 +537,13 @@ ev_block_tree_from_string(Arena *arena, EV_View *view, String8 filter, String8 s
// rjf: unpack expr // rjf: unpack expr
E_IRTreeAndType expr_irtree = e_irtree_and_type_from_expr(scratch.arena, t->expr); E_IRTreeAndType expr_irtree = e_irtree_and_type_from_expr(scratch.arena, t->expr);
// rjf: skip if type info disallows expansion // rjf: get expr's expansion rule
if(!ev_type_key_and_mode_is_expandable(expr_irtree.type_key, expr_irtree.mode)) EV_ExpandRuleTagPair expand_rule_and_tag = ev_expand_rule_tag_pair_from_expr_irtree(t->expr, &expr_irtree);
EV_ExpandRule *expand_rule = expand_rule_and_tag.rule;
E_Expr *expand_rule_tag = expand_rule_and_tag.tag;
// rjf: skip if no expansion rule, & type info disallows expansion
if(expand_rule == &ev_nil_expand_rule && !ev_type_key_and_mode_is_expandable(expr_irtree.type_key, expr_irtree.mode))
{ {
continue; continue;
} }
@@ -548,11 +553,6 @@ ev_block_tree_from_string(Arena *arena, EV_View *view, String8 filter, String8 s
E_LookupRule *lookup_rule = lookup_rule_and_tag.rule; E_LookupRule *lookup_rule = lookup_rule_and_tag.rule;
E_Expr *lookup_rule_tag = lookup_rule_and_tag.tag; E_Expr *lookup_rule_tag = lookup_rule_and_tag.tag;
// rjf: get expr's expansion rule
EV_ExpandRuleTagPair expand_rule_and_tag = ev_expand_rule_tag_pair_from_expr_irtree(t->expr, &expr_irtree);
EV_ExpandRule *expand_rule = expand_rule_and_tag.rule;
E_Expr *expand_rule_tag = expand_rule_and_tag.tag;
// rjf: get top-level lookup/expansion info // rjf: get top-level lookup/expansion info
E_LookupInfo lookup_info = lookup_rule->info(arena, &expr_irtree, filter); E_LookupInfo lookup_info = lookup_rule->info(arena, &expr_irtree, filter);
EV_ExpandInfo expand_info = expand_rule->info(arena, view, filter, t->expr, expand_rule_tag); EV_ExpandInfo expand_info = expand_rule->info(arena, view, filter, t->expr, expand_rule_tag);
+5 -5
View File
@@ -4524,7 +4524,7 @@ RD_VIEW_UI_FUNCTION_DEF(memory)
////////////////////////////// //////////////////////////////
//- rjf: unpack parameterization info //- rjf: unpack parameterization info
// //
Rng1U64 space_range = {0}; // TODO(rjf): @cfg rd_range_from_eval_params(eval, params); Rng1U64 space_range = rd_range_from_eval_tag(eval, tag);
if(eval.space.kind == 0) if(eval.space.kind == 0)
{ {
eval.space = rd_eval_space_from_ctrl_entity(ctrl_entity_from_handle(d_state->ctrl_entity_store, rd_regs()->process), RD_EvalSpaceKind_CtrlEntity); eval.space = rd_eval_space_from_ctrl_entity(ctrl_entity_from_handle(d_state->ctrl_entity_store, rd_regs()->process), RD_EvalSpaceKind_CtrlEntity);
@@ -4534,10 +4534,10 @@ RD_VIEW_UI_FUNCTION_DEF(memory)
space_range = r1u64(0, 0x7FFFFFFFFFFFull); space_range = r1u64(0, 0x7FFFFFFFFFFFull);
} }
} }
U64 cursor = 0; // TODO(rjf): @cfg rd_value_from_params_key(params, str8_lit("cursor_vaddr")).u64; U64 cursor = rd_view_cfg_value_from_string(str8_lit("cursor_vaddr")).u64;
U64 mark = 0; // TODO(rjf): @cfg rd_value_from_params_key(params, str8_lit("mark_vaddr")).u64; U64 mark = rd_view_cfg_value_from_string(str8_lit("mark_vaddr")).u64;
U64 bytes_per_cell = 0; // TODO(rjf): @cfg rd_value_from_params_key(params, str8_lit("bytes_per_cell")).u64; U64 bytes_per_cell = rd_view_cfg_value_from_string(str8_lit("bytes_per_cell")).u64;
U64 num_columns = 0; // TODO(rjf): @cfg rd_value_from_params_key(params, str8_lit("num_columns")).u64; U64 num_columns = rd_view_cfg_value_from_string(str8_lit("num_columns")).u64;
if(num_columns == 0) if(num_columns == 0)
{ {
num_columns = 16; num_columns = 16;