auto-resolution of derived class ptrs

This commit is contained in:
Ryan Fleury
2024-10-07 17:06:40 -07:00
parent 58114b72f4
commit 32ce2e110b
7 changed files with 87 additions and 12 deletions
+13 -1
View File
@@ -648,10 +648,22 @@ e_push_expr(Arena *arena, E_ExprKind kind, void *location)
return e;
}
internal void
e_expr_insert_child(E_Expr *parent, E_Expr *prev, E_Expr *child)
{
DLLInsert_NPZ(&e_expr_nil, parent->first, parent->last, prev, child, next, prev);
}
internal void
e_expr_push_child(E_Expr *parent, E_Expr *child)
{
SLLQueuePush_NZ(&e_expr_nil, parent->first, parent->last, child, next);
DLLPushBack_NPZ(&e_expr_nil, parent->first, parent->last, child, next, prev);
}
internal void
e_expr_remove_child(E_Expr *parent, E_Expr *child)
{
DLLRemove_NPZ(&e_expr_nil, parent->first, parent->last, child, next, prev);
}
internal E_Expr *
+3 -1
View File
@@ -53,6 +53,7 @@ struct E_Expr
E_Expr *first;
E_Expr *last;
E_Expr *next;
E_Expr *prev;
E_Expr *ref;
void *location;
E_ExprKind kind;
@@ -214,8 +215,9 @@ internal U32 e_parse_ctx_module_idx_from_rdi(RDI_Parsed *rdi);
//~ rjf: Expression Tree Building Functions
internal E_Expr *e_push_expr(Arena *arena, E_ExprKind kind, void *location);
internal void e_expr_insert_child(E_Expr *parent, E_Expr *prev, E_Expr *child);
internal void e_expr_push_child(E_Expr *parent, E_Expr *child);
internal void e_expr_remove_child(E_Expr *parent, E_Expr *child);
internal E_Expr *e_expr_ref(Arena *arena, E_Expr *ref);
internal E_Expr *e_expr_ref_addr(Arena *arena, E_Expr *rhs);
internal E_Expr *e_expr_ref_member_access(Arena *arena, E_Expr *lhs, String8 member_name);