[ruby-core:96192] [Ruby master Bug#16414] Incompatible behavior of Proc/lambda with single argument when using `Enumerator::Lazy#with_index`

[email protected]
Newsgroups gmane.comp.lang.ruby.core
Message-ID <redmine.journal-83075.20191210232315.9577e20bd4faddaa@ruby-lang.org>
Issue #16414 has been updated by jeremyevans0 (Jeremy Evans).


I have a possible fix for this: https://github.com/ruby/ruby/pull/2742

After CI completes, I'll try to merge it so it makes 2.7.0-rc1.

----------------------------------------
Bug #16414: Incompatible behavior of Proc/lambda with single argument when using `Enumerator::Lazy#with_index`
https://bugs.ruby-lang.org/issues/16414#change-83075

* Author: tomog105 (Tomohiro Ogoke)
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
* ruby -v: ruby 2.7.0dev (2019-12-10T10:12:21Z master af11efd377) [x86_64-darwin18]
* Backport: 2.5: UNKNOWN, 2.6: UNKNOWN
----------------------------------------
The following code raised an error `wrong number of arguments (given 1, expected 2) (ArgumentError)` in master.

```
$ ruby -e 'lambda = -> (s, i) { "#{i}:#{s}" }; p %w(a b c).each.lazy.with_index.map(&lambda).first(2)'
# expected result => ["0:a", "1:b"]
```

This code is valid up till Ruby 2.6.5 and 2.7.0-preview1, but it raised the error in Ruby 2.7.0-preview2 or later. Maybe, this behavior has been there since the implementation of `Enumerator::Lazy#with_index`.

Is this behaviour intended?



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

Unsubscribe: <mailto:[email protected]?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.