🌊

[Bug #21175] 先端無限 + 終端の値を含まない場合に Range#max がエラーになるバグ報告

2025/03/07に公開

[Bug #21175] Range#max called on a beginles Integer Range with excluded end raises TypeError

  • 先端無限かつ『終端の値を含まない』 Range オブジェクトのときに Range#max を呼び出すと TypeError が発生するというバグ報告
# error: cannot exclude end value with non Integer begin value (TypeError)
p (...10).max
  • 以下のように『先端無限でない』場合や『終端の値を含む』場合は問題なく動作します
# 先端が無限ではない
p (1...10).max   # => 9

# 終端の値を含む
p (1..10).max    # => 10
  • これは開発版の Ruby 3.5-dev でエラーが出ないように修正済みです
p (...10).max
# Ruby 3.4 => cannot exclude end value with non Integer begin value (TypeError)
# Ruby 3.5 => 9
GitHubで編集を提案

Discussion