Fix up compiling popped ranges with non-optimizable bounds

Fixes [Bug #20763]
This commit is contained in:
Kevin Newton 2024-09-27 13:06:27 -04:00
parent 7e19904c88
commit addb5fea94
Notes: git 2024-09-27 17:43:57 +00:00

View File

@ -9678,19 +9678,19 @@ pm_compile_node(rb_iseq_t *iseq, const pm_node_t *node, LINK_ANCHOR *const ret,
}
}
else {
if (cast->left == NULL) {
PUSH_INSN(ret, location, putnil);
}
else {
if (cast->left != NULL) {
PM_COMPILE(cast->left);
}
if (cast->right == NULL) {
else if (!popped) {
PUSH_INSN(ret, location, putnil);
}
else {
if (cast->right != NULL) {
PM_COMPILE(cast->right);
}
else if (!popped) {
PUSH_INSN(ret, location, putnil);
}
if (!popped) {
PUSH_INSN1(ret, location, newrange, INT2FIX(exclude_end ? 1 : 0));