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

----------------------------------------
Bug #14639: No #to_ary destructuring when mapping with lambda
https://bugs.ruby-lang.org/issues/14639

* Author: lenwood (Paul Martensen)
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
* ruby -v: 2.4.1+
* Backport: 2.3: UNKNOWN, 2.4: UNKNOWN, 2.5: UNKNOWN
----------------------------------------
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>