Issue #14845 has been updated by znz (Kazuhiro NISHIYAMA).


別チケットにした方が良いのかもしれませんが、関連するのでここにコメントしておきます。

`Range.new(1)` のように終端を省略できるようにするのはどうでしょうか?
endless range の時は exclude_end を指定できても違いがないようなので、現状では問題がなさそうに思います。

beginless などの可能性を考えるとキーワード引数も受け付けるようにして、 `Range.new(begin: 1, endless: true)` や `Range.new(begin: 1, end: 9, exclude_end: true)` のようにかけると良いかもしれません。

----------------------------------------
Bug #14845: Endless Range with nil
https://bugs.ruby-lang.org/issues/14845#change-72487

* Author: igaiga (Kuniaki IGARASHI)
* Status: Assigned
* Priority: Normal
* Assignee: matz (Yukihiro Matsumoto)
* Target version: 
* ruby -v: 2.6.0preview2
* Backport: 2.3: UNKNOWN, 2.4: UNKNOWN, 2.5: UNKNOWN
----------------------------------------
endless Rangeで次のケースで困ることがあります。

- 1..nilはendless Rangeになる
- endless Rangeはto_aすると返ってこなくなる
- 1..変数 のケースで意図せずendless Rangeになる可能性があり、そのときto_aすると返ってこなくなる

Ruby 2.5.1 では 1..nil はArgumentError (bad value for range) になります。

たとえば、 1..nil がendless Rangeではなくエラーになればこの問題は解決します。

### Info
- An endless range `(1..)` : https://bugs.ruby-lang.org/issues/12912
- twitter での話 : https://twitter.com/igaiga555/status/1006715631796813824

---Files--------------------------------
range_to_a.patch (1.56 KB)


-- 
https://bugs.ruby-lang.org/