* [ruby-core:121140] [Ruby master Bug#21152] Enumerator's #size returned by Range#reverse_each raises an exception for endless Range
@ 2025-02-22 23:47 andrykonchin (Andrew Konchin) via ruby-core
2025-02-27 22:12 ` [ruby-core:121202] " eileencodes (Eileen Uchitelle) via ruby-core
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: andrykonchin (Andrew Konchin) via ruby-core @ 2025-02-22 23:47 UTC (permalink / raw)
To: ruby-core; +Cc: andrykonchin (Andrew Konchin)
Issue #21152 has been reported by andrykonchin (Andrew Konchin).
----------------------------------------
Bug #21152: Enumerator's #size returned by Range#reverse_each raises an exception for endless Range
https://bugs.ruby-lang.org/issues/21152
* Author: andrykonchin (Andrew Konchin)
* Status: Open
* ruby -v: 3.4.2
* Backport: 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN, 3.4: UNKNOWN
----------------------------------------
I've noticed a change between 3.3 and 3.4 in a way how `Range#reverse_each` behaves:
Ruby 3.3:
```ruby
Range.new("a", nil).size # => nil
Range.new(1, nil).size # => Infinity
Range.new("a", nil).reverse_each.size # => nil
Range.new(1, nil).reverse_each.size # => Infinity
```
Ruby 3.4
```ruby
Range.new("a", nil).size # => nil
Range.new(1, nil).size # => Infinity
Range.new("a", nil).reverse_each.size # can't iterate from NilClass (TypeError)
Range.new(1, nil).reverse_each.size # can't iterate from NilClass (TypeError)
```
--
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/lists/ruby-core.ml.ruby-lang.org/
^ permalink raw reply [flat|nested] 4+ messages in thread
* [ruby-core:121202] [Ruby master Bug#21152] Enumerator's #size returned by Range#reverse_each raises an exception for endless Range
2025-02-22 23:47 [ruby-core:121140] [Ruby master Bug#21152] Enumerator's #size returned by Range#reverse_each raises an exception for endless Range andrykonchin (Andrew Konchin) via ruby-core
@ 2025-02-27 22:12 ` eileencodes (Eileen Uchitelle) via ruby-core
2025-02-27 22:15 ` [ruby-core:121203] " eileencodes (Eileen Uchitelle) via ruby-core
2025-03-13 11:23 ` [ruby-core:121328] " mame (Yusuke Endoh) via ruby-core
2 siblings, 0 replies; 4+ messages in thread
From: eileencodes (Eileen Uchitelle) via ruby-core @ 2025-02-27 22:12 UTC (permalink / raw)
To: ruby-core; +Cc: eileencodes (Eileen Uchitelle)
Issue #21152 has been updated by eileencodes (Eileen Uchitelle).
This changed in https://github.com/ruby/ruby/pull/12301 to fix a similar bug.
`Range.new(nil, "a").size` also raises a `TypeError` when in 3.3 it didn't.
----------------------------------------
Bug #21152: Enumerator's #size returned by Range#reverse_each raises an exception for endless Range
https://bugs.ruby-lang.org/issues/21152#change-112139
* Author: andrykonchin (Andrew Konchin)
* Status: Open
* ruby -v: 3.4.2
* Backport: 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN, 3.4: UNKNOWN
----------------------------------------
I've noticed a change between 3.3 and 3.4 in a way how `Range#reverse_each` behaves:
Ruby 3.3:
```ruby
Range.new("a", nil).size # => nil
Range.new(1, nil).size # => Infinity
Range.new("a", nil).reverse_each.size # => nil
Range.new(1, nil).reverse_each.size # => Infinity
```
Ruby 3.4
```ruby
Range.new("a", nil).size # => nil
Range.new(1, nil).size # => Infinity
Range.new("a", nil).reverse_each.size # can't iterate from NilClass (TypeError)
Range.new(1, nil).reverse_each.size # can't iterate from NilClass (TypeError)
```
--
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/lists/ruby-core.ml.ruby-lang.org/
^ permalink raw reply [flat|nested] 4+ messages in thread
* [ruby-core:121203] [Ruby master Bug#21152] Enumerator's #size returned by Range#reverse_each raises an exception for endless Range
2025-02-22 23:47 [ruby-core:121140] [Ruby master Bug#21152] Enumerator's #size returned by Range#reverse_each raises an exception for endless Range andrykonchin (Andrew Konchin) via ruby-core
2025-02-27 22:12 ` [ruby-core:121202] " eileencodes (Eileen Uchitelle) via ruby-core
@ 2025-02-27 22:15 ` eileencodes (Eileen Uchitelle) via ruby-core
2025-03-13 11:23 ` [ruby-core:121328] " mame (Yusuke Endoh) via ruby-core
2 siblings, 0 replies; 4+ messages in thread
From: eileencodes (Eileen Uchitelle) via ruby-core @ 2025-02-27 22:15 UTC (permalink / raw)
To: ruby-core; +Cc: eileencodes (Eileen Uchitelle)
Issue #21152 has been updated by eileencodes (Eileen Uchitelle).
In 3.3 `each` does raise with this example:
```
Range.new(nil,1).each do |x|
p x
end
```
And `reverse_each` does not. It feels like to me that 3.4 is more correct than 3.3.
----------------------------------------
Bug #21152: Enumerator's #size returned by Range#reverse_each raises an exception for endless Range
https://bugs.ruby-lang.org/issues/21152#change-112140
* Author: andrykonchin (Andrew Konchin)
* Status: Open
* ruby -v: 3.4.2
* Backport: 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN, 3.4: UNKNOWN
----------------------------------------
I've noticed a change between 3.3 and 3.4 in a way how `Range#reverse_each` behaves:
Ruby 3.3:
```ruby
Range.new("a", nil).size # => nil
Range.new(1, nil).size # => Infinity
Range.new("a", nil).reverse_each.size # => nil
Range.new(1, nil).reverse_each.size # => Infinity
```
Ruby 3.4
```ruby
Range.new("a", nil).size # => nil
Range.new(1, nil).size # => Infinity
Range.new("a", nil).reverse_each.size # can't iterate from NilClass (TypeError)
Range.new(1, nil).reverse_each.size # can't iterate from NilClass (TypeError)
```
--
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/lists/ruby-core.ml.ruby-lang.org/
^ permalink raw reply [flat|nested] 4+ messages in thread
* [ruby-core:121328] [Ruby master Bug#21152] Enumerator's #size returned by Range#reverse_each raises an exception for endless Range
2025-02-22 23:47 [ruby-core:121140] [Ruby master Bug#21152] Enumerator's #size returned by Range#reverse_each raises an exception for endless Range andrykonchin (Andrew Konchin) via ruby-core
2025-02-27 22:12 ` [ruby-core:121202] " eileencodes (Eileen Uchitelle) via ruby-core
2025-02-27 22:15 ` [ruby-core:121203] " eileencodes (Eileen Uchitelle) via ruby-core
@ 2025-03-13 11:23 ` mame (Yusuke Endoh) via ruby-core
2 siblings, 0 replies; 4+ messages in thread
From: mame (Yusuke Endoh) via ruby-core @ 2025-03-13 11:23 UTC (permalink / raw)
To: ruby-core; +Cc: mame (Yusuke Endoh)
Issue #21152 has been updated by mame (Yusuke Endoh).
Status changed from Open to Closed
Discussed at the dev meeting, and @matz agreed with @eileencodes ; the behavior of Ruby 3.4 is better.
----------------------------------------
Bug #21152: Enumerator's #size returned by Range#reverse_each raises an exception for endless Range
https://bugs.ruby-lang.org/issues/21152#change-112295
* Author: andrykonchin (Andrew Konchin)
* Status: Closed
* ruby -v: 3.4.2
* Backport: 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN, 3.4: UNKNOWN
----------------------------------------
I've noticed a change between 3.3 and 3.4 in a way how `Range#reverse_each` behaves:
Ruby 3.3:
```ruby
Range.new("a", nil).size # => nil
Range.new(1, nil).size # => Infinity
Range.new("a", nil).reverse_each.size # => nil
Range.new(1, nil).reverse_each.size # => Infinity
```
Ruby 3.4
```ruby
Range.new("a", nil).size # => nil
Range.new(1, nil).size # => Infinity
Range.new("a", nil).reverse_each.size # can't iterate from NilClass (TypeError)
Range.new(1, nil).reverse_each.size # can't iterate from NilClass (TypeError)
```
--
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/lists/ruby-core.ml.ruby-lang.org/
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2025-03-13 11:23 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-02-22 23:47 [ruby-core:121140] [Ruby master Bug#21152] Enumerator's #size returned by Range#reverse_each raises an exception for endless Range andrykonchin (Andrew Konchin) via ruby-core
2025-02-27 22:12 ` [ruby-core:121202] " eileencodes (Eileen Uchitelle) via ruby-core
2025-02-27 22:15 ` [ruby-core:121203] " eileencodes (Eileen Uchitelle) via ruby-core
2025-03-13 11:23 ` [ruby-core:121328] " mame (Yusuke Endoh) via ruby-core
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 NNTP newsgroup(s).