Issue #14639 has been updated by lenwood (Paul Martensen).


That was incredibly quick. Thanks @nobu and @marcandre! :) 

----------------------------------------
Bug #14639: Array#map and lambda arity regression
https://bugs.ruby-lang.org/issues/14639#change-71311

* Author: lenwood (Paul Martensen)
* Status: Closed
* Priority: Normal
* Assignee: 
* Target version: 
* ruby -v: 2.4.1+
* Backport: 2.3: DONTNEED, 2.4: REQUIRED, 2.5: REQUIRED
----------------------------------------
From ruby 2.4.1 onward the following script breaks (ArgumentError):

~~~ ruby
print_three = ->(a, b, c) { puts [a, b, c] }
arr = [[1, 2, 3]]

arr.map(&print_three)
~~~

This now requires explicit destructuring:

~~~ ruby
print_three = ->((a, b, c)) { puts [a, b, c] }
~~~

I guess this comes from a change in enum.c (line 45) from #9605 which seems to be similar.

While digging around I found https://bugs.ruby-lang.org/projects/ruby-trunk/repository/revisions/48193/diff that seems to address this very issue but I'm not sure.

If this is expected behavior feel free to disregard this.

First time posting to ruby trunk so I'm sorry If there is any Information missing. 




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

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>