[Bug #19426] Fix endless Range#step with #succ method

This commit is contained in:
Nobuyoshi Nakada 2023-02-09 20:37:34 +09:00
parent 8edd350bda
commit da4464b824
No known key found for this signature in database
GPG key ID: 7CD2805BFA3770C6
Notes: git 2023-02-09 14:05:28 +00:00
2 changed files with 45 additions and 1 deletions

View file

@ -532,7 +532,11 @@ range_step(int argc, VALUE *argv, VALUE range)
rb_raise(rb_eTypeError, "can't iterate from %s",
rb_obj_classname(b));
}
range_each_func(range, step_i, (VALUE)iter);
if (!NIL_P(e))
range_each_func(range, step_i, (VALUE)iter);
else
for (;; b = rb_funcallv(b, id_succ, 0, 0))
step_i(b, (VALUE)iter);
}
}
return range;