aboutsummaryrefslogtreecommitdiffstats
path: root/prism_compile.c
diff options
context:
space:
mode:
authorJemma Issroff <jemmaissroff@gmail.com>2023-12-01 13:00:20 -0500
committerJemma Issroff <jemmaissroff@gmail.com>2023-12-01 13:23:23 -0500
commit2a8d9c59ff151e8e2274e5f788745e070111b8ab (patch)
tree23d0f35c24bb73f613927dda6e38ccfe215c8d27 /prism_compile.c
parentd6584a02011120c15b520fa08e5e5f0132b686de (diff)
downloadruby-2a8d9c59ff151e8e2274e5f788745e070111b8ab.tar.gz
[PRISM] Account for RescueNodes with no statements
We need a PUTNIL if a RescueNode has no statements.
Diffstat (limited to 'prism_compile.c')
-rw-r--r--prism_compile.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/prism_compile.c b/prism_compile.c
index 04cdb89ce4..1b55396b0b 100644
--- a/prism_compile.c
+++ b/prism_compile.c
@@ -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);