ruby-core@ruby-lang.org archive (unofficial mirror)
 help / color / mirror / Atom feed
* [ruby-core:103336] [Ruby master Bug#17789] Incompatible behavior of Enumarator::Lazy#with_index
@ 2021-04-09  8:46 soudai.sasada
  2021-04-09  9:02 ` [ruby-core:103338] " zverok.offline
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: soudai.sasada @ 2021-04-09  8:46 UTC (permalink / raw)
  To: ruby-core

Issue #17789 has been reported by soudai_s (Soudai Sasada).

----------------------------------------
Bug #17789: Incompatible behavior of Enumarator::Lazy#with_index
https://bugs.ruby-lang.org/issues/17789

* Author: soudai_s (Soudai Sasada)
* Status: Open
* Priority: Normal
* ruby -v: ruby 3.0.1p64 (2021-04-05 revision 0fb782ee38) [x86_64-darwin20]
* Backport: 2.6: UNKNOWN, 2.7: UNKNOWN, 3.0: UNKNOWN
----------------------------------------
this method ignores the block passed to it, but this behavior looks different from the Enumerator (super class).

```
$ ruby -e '%w(a).lazy.with_index { |s, i| puts "#{s} => #{i}" }'
a => 0 # Expected, but doesn't actually print anything
```
After confirmation I found #16414 but this behavior was not fixed and the doc in the modified source code states: "If a block given, iterates the given block for each element".
Is this behavior intended?



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

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

* [ruby-core:103338] [Ruby master Bug#17789] Incompatible behavior of Enumarator::Lazy#with_index
  2021-04-09  8:46 [ruby-core:103336] [Ruby master Bug#17789] Incompatible behavior of Enumarator::Lazy#with_index soudai.sasada
@ 2021-04-09  9:02 ` zverok.offline
  2021-04-09 11:03 ` [ruby-core:103343] " soudai.sasada
  2021-04-09 14:33 ` [ruby-core:103348] " merch-redmine
  2 siblings, 0 replies; 4+ messages in thread
From: zverok.offline @ 2021-04-09  9:02 UTC (permalink / raw)
  To: ruby-core

Issue #17789 has been updated by zverok (Victor Shepelev).


It doesn't ignores the block. It is just lazy to perform it :)

```ruby
%w(a).lazy.with_index { |s, i| puts "#{s} => #{i}" }
# => #<Enumerator::Lazy: ...>

%w(a).lazy.with_index { |s, i| puts "#{s} => #{i}" }.force
# a => 0
```

----------------------------------------
Bug #17789: Incompatible behavior of Enumarator::Lazy#with_index
https://bugs.ruby-lang.org/issues/17789#change-91429

* Author: soudai_s (Soudai Sasada)
* Status: Open
* Priority: Normal
* ruby -v: ruby 3.0.1p64 (2021-04-05 revision 0fb782ee38) [x86_64-darwin20]
* Backport: 2.6: UNKNOWN, 2.7: UNKNOWN, 3.0: UNKNOWN
----------------------------------------
this method ignores the block passed to it, but this behavior looks different from the Enumerator (super class).

```
$ ruby -e '%w(a).lazy.with_index { |s, i| puts "#{s} => #{i}" }'
a => 0 # Expected, but doesn't actually print anything
```
After confirmation I found #16414 but this behavior was not fixed and the doc in the modified source code states: "If a block given, iterates the given block for each element".
Is this behavior intended?



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

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

* [ruby-core:103343] [Ruby master Bug#17789] Incompatible behavior of Enumarator::Lazy#with_index
  2021-04-09  8:46 [ruby-core:103336] [Ruby master Bug#17789] Incompatible behavior of Enumarator::Lazy#with_index soudai.sasada
  2021-04-09  9:02 ` [ruby-core:103338] " zverok.offline
@ 2021-04-09 11:03 ` soudai.sasada
  2021-04-09 14:33 ` [ruby-core:103348] " merch-redmine
  2 siblings, 0 replies; 4+ messages in thread
From: soudai.sasada @ 2021-04-09 11:03 UTC (permalink / raw)
  To: ruby-core

Issue #17789 has been updated by soudai_s (Soudai Sasada).


It means It's no longer compatible with 2.6 or under, isn't it?
Thank you for quick reply!

----------------------------------------
Bug #17789: Incompatible behavior of Enumarator::Lazy#with_index
https://bugs.ruby-lang.org/issues/17789#change-91434

* Author: soudai_s (Soudai Sasada)
* Status: Open
* Priority: Normal
* ruby -v: ruby 3.0.1p64 (2021-04-05 revision 0fb782ee38) [x86_64-darwin20]
* Backport: 2.6: UNKNOWN, 2.7: UNKNOWN, 3.0: UNKNOWN
----------------------------------------
this method ignores the block passed to it, but this behavior looks different from the Enumerator (super class).

```
$ ruby -e '%w(a).lazy.with_index { |s, i| puts "#{s} => #{i}" }'
a => 0 # Expected, but doesn't actually print anything
```
After confirmation I found #16414 but this behavior was not fixed and the doc in the modified source code states: "If a block given, iterates the given block for each element".
Is this behavior intended?



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

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

* [ruby-core:103348] [Ruby master Bug#17789] Incompatible behavior of Enumarator::Lazy#with_index
  2021-04-09  8:46 [ruby-core:103336] [Ruby master Bug#17789] Incompatible behavior of Enumarator::Lazy#with_index soudai.sasada
  2021-04-09  9:02 ` [ruby-core:103338] " zverok.offline
  2021-04-09 11:03 ` [ruby-core:103343] " soudai.sasada
@ 2021-04-09 14:33 ` merch-redmine
  2 siblings, 0 replies; 4+ messages in thread
From: merch-redmine @ 2021-04-09 14:33 UTC (permalink / raw)
  To: ruby-core

Issue #17789 has been updated by jeremyevans0 (Jeremy Evans).

Status changed from Open to Closed

This is expected. The behavior has changed. All bug fixes are incompatibilities.

----------------------------------------
Bug #17789: Incompatible behavior of Enumarator::Lazy#with_index
https://bugs.ruby-lang.org/issues/17789#change-91438

* Author: soudai_s (Soudai Sasada)
* Status: Closed
* Priority: Normal
* ruby -v: ruby 3.0.1p64 (2021-04-05 revision 0fb782ee38) [x86_64-darwin20]
* Backport: 2.6: UNKNOWN, 2.7: UNKNOWN, 3.0: UNKNOWN
----------------------------------------
this method ignores the block passed to it, but this behavior looks different from the Enumerator (super class).

```
$ ruby -e '%w(a).lazy.with_index { |s, i| puts "#{s} => #{i}" }'
a => 0 # Expected, but doesn't actually print anything
```
After confirmation I found #16414 but this behavior was not fixed and the doc in the modified source code states: "If a block given, iterates the given block for each element".
Is this behavior intended?



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

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

end of thread, other threads:[~2021-04-09 14:33 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-09  8:46 [ruby-core:103336] [Ruby master Bug#17789] Incompatible behavior of Enumarator::Lazy#with_index soudai.sasada
2021-04-09  9:02 ` [ruby-core:103338] " zverok.offline
2021-04-09 11:03 ` [ruby-core:103343] " soudai.sasada
2021-04-09 14:33 ` [ruby-core:103348] " merch-redmine

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).