Project

General

Profile

Actions

Bug #20324

closed

`(1..).overlap?('foo'..)` returns true

Added by kyanagi (Kouhei Yanagita) 9 months ago. Updated 6 months ago.

Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby 3.3.0 (2023-12-25 revision 5124f9ac75) [arm64-darwin22]
[ruby-core:117047]

Description

While thinking about finding the intersection of two ranges, I found that (1..).overlap?('foo'..) returns true.

In the current implementation, it seems that (a..).overlap?(b..) or (..a).overlap?(..b) returns true regardless of what a or b are.
However, I think it should return true if and only if a and b are comparable.
(What is the intersection of 1.. and 'foo'..?)

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0