[PRISM] Move Local table setup into EnsureNode compilation
This commit is contained in:
parent
b7d5a63b9a
commit
e7bdd9e498
@ -1079,15 +1079,7 @@ pm_scope_node_init(const pm_node_t *node, pm_scope_node_t *scope, pm_scope_node_
|
|||||||
}
|
}
|
||||||
case PM_ENSURE_NODE: {
|
case PM_ENSURE_NODE: {
|
||||||
pm_ensure_node_t *cast = (pm_ensure_node_t *)node;
|
pm_ensure_node_t *cast = (pm_ensure_node_t *)node;
|
||||||
|
|
||||||
// HAXXX
|
|
||||||
pm_constant_id_t err_info = 3863;
|
|
||||||
pm_constant_id_list_t locals;
|
|
||||||
pm_constant_id_list_init(&locals);
|
|
||||||
pm_constant_id_list_append(&locals, err_info);
|
|
||||||
|
|
||||||
scope->body = (pm_node_t *)cast->statements;
|
scope->body = (pm_node_t *)cast->statements;
|
||||||
scope->locals = locals;
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case PM_FOR_NODE: {
|
case PM_FOR_NODE: {
|
||||||
@ -1591,6 +1583,11 @@ pm_compile_node(rb_iseq_t *iseq, const pm_node_t *node, LINK_ANCHOR *const ret,
|
|||||||
pm_scope_node_t next_scope_node;
|
pm_scope_node_t next_scope_node;
|
||||||
pm_scope_node_init((pm_node_t *)begin_node->ensure_clause, &next_scope_node, scope_node, parser);
|
pm_scope_node_init((pm_node_t *)begin_node->ensure_clause, &next_scope_node, scope_node, parser);
|
||||||
|
|
||||||
|
pm_constant_id_list_t locals;
|
||||||
|
pm_constant_id_list_init(&locals);
|
||||||
|
pm_constant_id_list_append(&locals, idERROR_INFO);
|
||||||
|
next_scope_node.locals = locals;
|
||||||
|
|
||||||
child_iseq = NEW_CHILD_ISEQ(next_scope_node,
|
child_iseq = NEW_CHILD_ISEQ(next_scope_node,
|
||||||
rb_str_new2("ensure in"),
|
rb_str_new2("ensure in"),
|
||||||
ISEQ_TYPE_ENSURE, lineno);
|
ISEQ_TYPE_ENSURE, lineno);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user