ruby-core@ruby-lang.org archive (unofficial mirror)
 help / color / mirror / Atom feed
* [ruby-core:102067] [Ruby master Bug#17537] === on ranges of strings is not consistant with include?
@ 2021-01-13 17:12 akim.demaille
  2021-01-13 17:35 ` [ruby-core:102068] " zverok.offline
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: akim.demaille @ 2021-01-13 17:12 UTC (permalink / raw)
  To: ruby-core

Issue #17537 has been reported by akim (Akim Demaille).

----------------------------------------
Bug #17537: === on ranges of strings is not consistant with include?
https://bugs.ruby-lang.org/issues/17537

* Author: akim (Akim Demaille)
* Status: Open
* Priority: Normal
* ruby -v: ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x86_64-darwin18]
* Backport: 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN, 3.0: UNKNOWN
----------------------------------------
Hi,

In Ruby up to 2.6 both `("1".."12").include?("6")` and `("1".."12") ===  "6"` were true.  In 2.7 and 3.0, `include?` accepts `"6"`, but `===` does not.  This was very handy in `case`s.  Reading the documentation it is unclear to me whether this change was intentional.

```
$ cat /tmp/foo.rb
puts(("1".."12").include?("6"))
puts(("1".."12") === "6")
p(("1".."12").to_a)
$ ruby2.6 /tmp/foo.rb
true
true
["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"]
$ ruby2.7 /tmp/foo.rb
true
false
["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"]
$ ruby3.0 /tmp/foo.rb
true
false
["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"]
```

Cheers!



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

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2021-01-14 10:21 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-01-13 17:12 [ruby-core:102067] [Ruby master Bug#17537] === on ranges of strings is not consistant with include? akim.demaille
2021-01-13 17:35 ` [ruby-core:102068] " zverok.offline
2021-01-14  4:55 ` [ruby-core:102084] " akim.demaille
2021-01-14 10:21 ` [ruby-core:102088] " zverok.offline

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).