summaryrefslogtreecommitdiffhomepage
path: root/mrblib
diff options
context:
space:
mode:
authorKOBAYASHI Shuji <[email protected]>2019-07-07 22:10:32 +0900
committerKOBAYASHI Shuji <[email protected]>2019-07-07 22:10:32 +0900
commit32c2aa10c79e37c53411b1d693c6c8d010fba7bb (patch)
treeabdcba7eb044b72422af2ef9c5c1ef7f3f503b9b /mrblib
parent280a83f029c91a8b4c08e76a0d70234c05b7825c (diff)
downloadmruby-32c2aa10c79e37c53411b1d693c6c8d010fba7bb.tar.gz
mruby-32c2aa10c79e37c53411b1d693c6c8d010fba7bb.zip
Fix `Numeric#step` to infinity; ref. #4555
Diffstat (limited to 'mrblib')
-rw-r--r--mrblib/numeric.rb8
1 files changed, 4 insertions, 4 deletions
diff --git a/mrblib/numeric.rb b/mrblib/numeric.rb
index 5a3c5eb58..5926518d5 100644
--- a/mrblib/numeric.rb
+++ b/mrblib/numeric.rb
@@ -105,14 +105,14 @@ module Integral
return to_enum(:step, num, step) unless block
i = __coerce_step_counter(num, step)
- if num == nil
+ if num == self || step.infinite?
+ block.call(i) if step > 0 && i <= (num||i) || step < 0 && i >= (num||-i)
+ elsif num == nil
while true
block.call(i)
i += step
end
- return self
- end
- if step > 0
+ elsif step > 0
while i <= num
block.call(i)
i += step