Project

General

Profile

Bug #19231

Updated by andrykonchin (Andrew Konchin) over 1 year ago

The initial issue was reported here https://github.com/oracle/truffleruby/issues/2797. 

 `0.step(Float::INFINITY, 10)` returns: 
 - `Integers` when called with a block 
 - `Floats` when called without a block 

 I would expect `Floats` to be returned in both cases. 

 Examples: 

 ```ruby 
 0.step(Float::INFINITY, 0.step(100.0, 10).take(1).map(&:class) 
 # => [Float] 
 ``` 

 ```ruby 
 0.step(Float::INFINITY, 10) { |offset| p offset.class; break } 
 # Integer 
 ``` 

 When `to` argument is a finite `Float` value then calling with a block returns `Floats` as well: 

 ```ruby 
 0.step(100.0, 10) { |offset| p offset.class; break } 
 # Float 
 ``` 

 Wondering whether it's intentional behaviour. 

 I've found a related issue https://bugs.ruby-lang.org/issues/15518.

Back