Issue #19983 has been updated by zverok (Victor Shepelev).
I honestly believe it would be more reasonable to allow anonymous argument handling for
procs, too.
It would be consistent and clear, no special edge cases due to, say, code copying (yes,
there would be edge cases to demonstrate "how confusing you can make the code by
abusing the feature," but such demonstrations could be made with Ruby 1.8.6 too).
I believe that shadowing of unnamed arguments is not more confusing than shadowing of
named arguments, which Ruby always allowed.
----------------------------------------
Bug #19983: Nested * seems incorrect
https://bugs.ruby-lang.org/issues/19983#change-105136
* Author: Eregon (Benoit Daloze)
* Status: Open
* Priority: Normal
* ruby -v: ruby 3.3.0dev (2023-10-30T09:27:06Z master 14fa5e39d7) [x86_64-linux]
* Backport: 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN
----------------------------------------
```
$ ruby -v -e 'def m(*); ->(*) { p(*) }; end; m(1).call(2)'
ruby 3.3.0dev (2023-10-30T09:27:06Z master 14fa5e39d7) [x86_64-linux]
1
```
But I would expect `2`.
Much like:
```
$ ruby -e 'def m(a); ->(a) { p(a) }; end; m(1).call(2)'
ruby 3.3.0dev (2023-10-30T09:27:06Z master 14fa5e39d7) [x86_64-linux]
2
```
i.e. the inner variable should win.
Also affects at least 3.2.
--
https://bugs.ruby-lang.org/