mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-07-20 23:46:48 +00:00
eval: distinguish irtree 'parents' from 'overrides' - parents are any irtree which some other expression is extending, and overrides are a subset of those, being just the irtrees overridden by auto-hooks. doing this because when we unwind the parent chain, sometimes we do not want to do that for basic expression extensions - we just want to undo the overrides.
This commit is contained in:
@@ -838,9 +838,9 @@ e_irtree_from_bundle(E_CacheBundle *bundle)
|
||||
if(bundle != &e_cache_bundle_nil && !(bundle->flags & E_CacheBundleFlag_IRTree))
|
||||
{
|
||||
bundle->flags |= E_CacheBundleFlag_IRTree;
|
||||
E_IRTreeAndType overridden = e_irtree_from_key(bundle->parent_key);
|
||||
E_IRTreeAndType parent = e_irtree_from_key(bundle->parent_key);
|
||||
E_Parse parse = e_parse_from_bundle(bundle);
|
||||
bundle->irtree = e_push_irtree_and_type_from_expr(e_cache->arena, &overridden, 0, 0, 0, parse.expr);
|
||||
bundle->irtree = e_push_irtree_and_type_from_expr(e_cache->arena, &parent, 0, 0, 0, parse.expr);
|
||||
E_MsgList msgs_copy = e_msg_list_copy(e_cache->arena, &bundle->irtree.msgs);
|
||||
e_msg_list_concat_in_place(&bundle->msgs, &msgs_copy);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user