parent
95c9711d6e
commit
cb98b018c0
@ -3583,12 +3583,13 @@ pm_compile_rescue(rb_iseq_t *iseq, pm_begin_node_t *begin_node, LINK_ANCHOR *con
|
|||||||
}
|
}
|
||||||
ISEQ_COMPILE_DATA(iseq)->in_rescue = prev_in_rescue;
|
ISEQ_COMPILE_DATA(iseq)->in_rescue = prev_in_rescue;
|
||||||
|
|
||||||
|
ADD_LABEL(ret, lend);
|
||||||
|
|
||||||
if (begin_node->else_clause) {
|
if (begin_node->else_clause) {
|
||||||
PM_POP_UNLESS_POPPED;
|
PM_POP_UNLESS_POPPED;
|
||||||
PM_COMPILE((pm_node_t *)begin_node->else_clause);
|
PM_COMPILE((pm_node_t *)begin_node->else_clause);
|
||||||
}
|
}
|
||||||
|
|
||||||
ADD_LABEL(ret, lend);
|
|
||||||
PM_NOP;
|
PM_NOP;
|
||||||
ADD_LABEL(ret, lcont);
|
ADD_LABEL(ret, lcont);
|
||||||
|
|
||||||
|
@ -1395,6 +1395,23 @@ a
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
CODE
|
CODE
|
||||||
|
|
||||||
|
# Test RescueNode with ElseNode
|
||||||
|
assert_prism_eval(<<~RUBY)
|
||||||
|
calls = []
|
||||||
|
begin
|
||||||
|
begin
|
||||||
|
rescue RuntimeError
|
||||||
|
calls << 1
|
||||||
|
else
|
||||||
|
calls << 2
|
||||||
|
raise RuntimeError
|
||||||
|
end
|
||||||
|
rescue RuntimeError
|
||||||
|
end
|
||||||
|
|
||||||
|
calls
|
||||||
|
RUBY
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_RescueModifierNode
|
def test_RescueModifierNode
|
||||||
|
Loading…
x
Reference in New Issue
Block a user