Issue #12705 has been updated by shyouhei (Shyouhei Urabe).

Target version set to 2.5

We looked at this issue in today's developer meeting and Koichi said he want this be fixed in 2.5.

----------------------------------------
Bug #12705: yielding args to a lambda uses block/proc rather than lambda/method semantics
https://bugs.ruby-lang.org/issues/12705#change-63562

* Author: bughit (bug hit)
* Status: Assigned
* Priority: Normal
* Assignee: nobu (Nobuyoshi Nakada)
* Target version: 2.5
* ruby -v: 
* Backport: 2.2: UNKNOWN, 2.3: REQUIRED, 2.4: REQUIRED
----------------------------------------
```ruby
def yield_test
  yield 1, 2
  yield [1, 2]
end

def foo(a, b)
  p a, b
end

method_lambda = method(:foo).to_proc
normal_lambda = ->a, b{p a, b}

yield_test(&normal_lambda)

yield_test(&method_lambda)
```

the yield of [1, 2] to the method_lambda produces an argument error as you would expect
but the same yield to the normal_lamda does not, the single array arg is slpatted per block/proc semantics




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