fix array-index ir tree generation - was incorrectly applying array value rules to address value evaluations; plug in ir-generation hooks for slices, arrays, etc.; eliminate old view rule code

This commit is contained in:
Ryan Fleury
2025-02-11 15:25:42 -08:00
parent 50e4f6a22a
commit 312ddd5899
11 changed files with 77 additions and 180 deletions
@@ -451,9 +451,8 @@ ev_keyed_expr_push_tags(Arena *arena, EV_View *view, EV_Block *block, EV_Key key
{
// rjf: push inherited tags first (we want these to be found first, since tags are applied
// in order, and explicit ones should always be strongest)
for(EV_Block *b = block; b != &ev_nil_block; b = b->parent)
{
for(E_Expr *src_tag = b->expr->first_tag; src_tag != &e_expr_nil; src_tag = src_tag->next)
for(E_Expr *src_tag = block->expr->first_tag; src_tag != &e_expr_nil; src_tag = src_tag->next)
{
e_expr_push_tag(expr, e_expr_copy(arena, src_tag));
}