🎃

[Bug #20487] (1..nil) が無限Range になるバグ報告

に公開

[Bug #20487] 1..nil is giving range from 1 to inifinity in ruby greater than 2.6

  • (1..nil) という Range を定義したときに 1~無限 の範囲として扱われるというバグ報告
  • 起票者の意図としては nil.to_i # => 0 になるので (1..0) として扱われるのが期待する挙動とのこと
  • これは確かにそう認知する人がいるのか〜〜〜と思いつつ Range で nil を渡した場合は無現値として扱われる仕様なので期待する挙動になりますねー
# 終端が nil のときとない場合は等価
pp (1..nil) == (1..)

# 両方とも終端は nil を返す
pp (1..nil).end   # => nil
pp (1..).end      # => nil
GitHubで編集を提案

Discussion