mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-08-07 06:18:42 +00:00
fix implicit parent/override member accesses
This commit is contained in:
+6
-2
@@ -1554,8 +1554,10 @@ e_push_irtree_and_type_from_expr(Arena *arena, E_IRTreeAndType *root_parent, B32
|
|||||||
//- rjf: try to map name as implicit access of overridden expression ('$.member_name', where the $. prefix is omitted)
|
//- rjf: try to map name as implicit access of overridden expression ('$.member_name', where the $. prefix is omitted)
|
||||||
if(!string_mapped && parent != 0 && parent->root != &e_irnode_nil)
|
if(!string_mapped && parent != 0 && parent->root != &e_irnode_nil)
|
||||||
{
|
{
|
||||||
E_Expr *access = e_expr_irext_member_access(scratch.arena, &e_expr_nil, parent, string);
|
for(E_IRTreeAndType *prev = parent; prev != 0; prev = prev->prev)
|
||||||
E_IRTreeAndType access_irtree = e_push_irtree_and_type_from_expr(scratch.arena, parent, disallow_autohooks, 1, 1, access);
|
{
|
||||||
|
E_Expr *access = e_expr_irext_member_access(scratch.arena, &e_expr_nil, prev, string);
|
||||||
|
E_IRTreeAndType access_irtree = e_push_irtree_and_type_from_expr(scratch.arena, prev, disallow_autohooks, 1, 1, access);
|
||||||
if(access_irtree.root != &e_irnode_nil)
|
if(access_irtree.root != &e_irnode_nil)
|
||||||
{
|
{
|
||||||
string_mapped = 1;
|
string_mapped = 1;
|
||||||
@@ -1564,6 +1566,8 @@ e_push_irtree_and_type_from_expr(Arena *arena, E_IRTreeAndType *root_parent, B32
|
|||||||
mapped_bytecode = e_bytecode_from_oplist(arena, &oplist);
|
mapped_bytecode = e_bytecode_from_oplist(arena, &oplist);
|
||||||
mapped_bytecode_mode = access_irtree.mode;
|
mapped_bytecode_mode = access_irtree.mode;
|
||||||
e_msg_list_concat_in_place(&result.msgs, &access_irtree.msgs);
|
e_msg_list_concat_in_place(&result.msgs, &access_irtree.msgs);
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user