[#114774] [Ruby master Feature#19884] Make Safe Navigation Operator work on classes — "p8 (Petrik de Heus) via ruby-core" <ruby-core@...>
Issue #19884 has been reported by p8 (Petrik de Heus).
13 messages
2023/09/15
[ruby-core:114653] [Ruby master Bug#19864] Ruby 3.2 Changed Behavior With One Sided Ranges
From:
jgomo3 via ruby-core <ruby-core@...>
Date:
2023-09-06 12:17:52 UTC
List:
ruby-core #114653
Issue #19864 has been updated by jgomo3 (Jes=FAs G=F3mez). File range_test_2.rb added File range_test_3.rb added I tested the idea with whole numbers, and it doesn't fail. I tested the idea with dates not in the extremes, and it DOES fail. Attached 2 examples. The first one using numbers: ``` (..0) =3D=3D=3D 0 ``` Which works fine both in Ruby 3.1 and 3.2 The second one using different dates. In particular, checking if "yesterday= " is in the range of "..today": ``` require 'date' today =3D Date.today yesterday =3D today - 1 (..today) =3D=3D=3D yesterday ``` And it fails in 3.2, but works fine in 3.1. ---------------------------------------- Bug #19864: Ruby 3.2 Changed Behavior With One Sided Ranges https://bugs.ruby-lang.org/issues/19864#change-104482 * Author: Aesthetikx (John DeSilva) * Status: Open * Priority: Normal * ruby -v: 3.3.0 * Backport: 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN ---------------------------------------- Thank you for taking the time to read my issue. I know there has been some = previous discussion here https://bugs.ruby-lang.org/issues/19533 regarding = a similar issue, although I think this is different. I apologize if this ha= s already been addressed. Prior to Ruby 3.2, you could use a beginless or endless range, and use =3D= =3D=3D (or a case statement) to determine if a given date matched that rang= e. For example, (..today) =3D=3D=3D yesterday would have returned true, and= (tomorrow..) =3D=3D=3D today would have returned false. Please see my atta= ched file for a more concrete example. Starting with Ruby 3.2, this results in "`=3D=3D=3D': cannot determine incl= usion in beginless/endless ranges (TypeError)". I can imagine that there is difficulty and ambiguity with these infinite ra= nges and non numeric objects, however I do feel that these examples with da= tes should work, especially since (..Date.today).cover?(Date.today) still w= orks as expected. ---Files-------------------------------- range_test.rb (928 Bytes) range_test_2.rb (411 Bytes) range_test_3.rb (162 Bytes) --=20 https://bugs.ruby-lang.org/ ______________________________________________ ruby-core mailing list -- ruby-core@ml.ruby-lang.org To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org ruby-core info -- https://ml.ruby-lang.org/mailman3/postorius/lists/ruby-c= ore.ml.ruby-lang.org/