зеркало из https://github.com/github/ruby.git
[PRISM] Account for RescueNodes with no statements
We need a PUTNIL if a RescueNode has no statements.
This commit is contained in:
Родитель
d6584a0201
Коммит
2a8d9c59ff
|
@ -3658,9 +3658,14 @@ pm_compile_node(rb_iseq_t *iseq, const pm_node_t *node, LINK_ANCHOR *const ret,
|
|||
ADD_GETLOCAL(ret, &dummy_line_node, LVAR_ERRINFO, 0);
|
||||
PM_COMPILE((pm_node_t *)rescue_node->reference);
|
||||
}
|
||||
|
||||
if (rescue_node->statements) {
|
||||
PM_COMPILE((pm_node_t *)rescue_node->statements);
|
||||
}
|
||||
else {
|
||||
PM_PUTNIL;
|
||||
}
|
||||
|
||||
ADD_INSN(ret, &dummy_line_node, leave);
|
||||
ADD_LABEL(ret, rescue_end);
|
||||
|
||||
|
|
|
@ -792,6 +792,12 @@ module Prism
|
|||
rescue StandardError => e
|
||||
end
|
||||
CODE
|
||||
assert_prism_eval(<<~CODE)
|
||||
begin
|
||||
raise StandardError
|
||||
rescue StandardError => e
|
||||
end
|
||||
CODE
|
||||
assert_prism_eval(<<~CODE)
|
||||
begin
|
||||
1
|
||||
|
|
Загрузка…
Ссылка в новой задаче