зеркало из https://github.com/github/ruby.git
Родитель
7bd7030a96
Коммит
07b9b53459
|
@ -3247,14 +3247,16 @@ pm_compile_node(rb_iseq_t *iseq, const pm_node_t *node, LINK_ANCHOR *const ret,
|
||||||
PM_PUTNIL_UNLESS_POPPED;
|
PM_PUTNIL_UNLESS_POPPED;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ADD_LABEL(ret, eend);
|
ADD_LABEL(ret, eend);
|
||||||
|
ADD_LABEL(ret, econt);
|
||||||
|
|
||||||
if (!popped) {
|
if (!popped) {
|
||||||
PM_NOP;
|
PM_NOP;
|
||||||
}
|
}
|
||||||
pm_statements_node_t *statements = begin_node->ensure_clause->statements;
|
pm_statements_node_t *statements = begin_node->ensure_clause->statements;
|
||||||
if (statements) {
|
if (statements) {
|
||||||
PM_COMPILE((pm_node_t *)statements);
|
PM_COMPILE((pm_node_t *)statements);
|
||||||
ADD_LABEL(ret, econt);
|
|
||||||
PM_POP_UNLESS_POPPED;
|
PM_POP_UNLESS_POPPED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -962,6 +962,22 @@ module Prism
|
||||||
end
|
end
|
||||||
prism_test_ensure_node
|
prism_test_ensure_node
|
||||||
CODE
|
CODE
|
||||||
|
|
||||||
|
# Test empty ensure block
|
||||||
|
assert_prism_eval(<<~RUBY)
|
||||||
|
res = []
|
||||||
|
|
||||||
|
begin
|
||||||
|
begin
|
||||||
|
raise
|
||||||
|
ensure
|
||||||
|
end
|
||||||
|
rescue
|
||||||
|
res << "rescue"
|
||||||
|
end
|
||||||
|
|
||||||
|
res
|
||||||
|
RUBY
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_NextNode
|
def test_NextNode
|
||||||
|
|
Загрузка…
Ссылка в новой задаче