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;
|
||||
|
||||
ADD_LABEL(ret, lend);
|
||||
|
||||
if (begin_node->else_clause) {
|
||||
PM_POP_UNLESS_POPPED;
|
||||
PM_COMPILE((pm_node_t *)begin_node->else_clause);
|
||||
}
|
||||
|
||||
ADD_LABEL(ret, lend);
|
||||
PM_NOP;
|
||||
ADD_LABEL(ret, lcont);
|
||||
|
||||
|
@ -1395,6 +1395,23 @@ a
|
||||
end
|
||||
end
|
||||
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
|
||||
|
||||
def test_RescueModifierNode
|
||||
|
Loading…
x
Reference in New Issue
Block a user