
Issue #19839 has been updated by Dan0042 (Daniel DeLorme). shouichi (Shouichi Kamiya) wrote in #note-21:
Because `(...-Float::INFINITY)` is semantically empty, shouldn't `none?` return `true`?
I agree it should be semantically empty, but `(...-Float::INFINITY).size` == Infinity akr (Akira Tanaka) wrote in #note-22:
`Range` has two semantics: succ-based and cover-based. `none?` is succ-based because it is implemented in `Enumerable` which uses `each` method which uses `succ` in Range.
In that case it seems like Range should have cover-based `#empty?` method. It has been proposed before (#13933) but strangely it was never added? ---------------------------------------- Feature #19839: Need a method to check if two ranges overlap https://bugs.ruby-lang.org/issues/19839#change-104681 * Author: shouichi (Shouichi Kamiya) * Status: Closed * Priority: Normal ---------------------------------------- It would be convenient to have a method that checks if two ranges overlap. For example, ``` (0..10).overlap?(5..15) #=> true (0..10).overlap?(20..30) #=> false ``` -- https://bugs.ruby-lang.org/