
Issue #19370 has been updated by sawa (Tsuyoshi Sawada). zverok (Victor Shepelev) wrote in #note-2:
Note that it might lead to very confusing behavior when the surrounding method does have anonymous arguments:
```ruby def test(*) # ...
proc { |*| p(*) }.call(1) end ```
I think nesting anonymous arguments should be prohibited on as with numbered parameters: ```ruby "foo".then{_1.then{_1.upcase}} # >> SyntaxError ((irb):21: numbered parameter is already used in) outer block here ``` ---------------------------------------- Feature #19370: Anonymous parameters for blocks? https://bugs.ruby-lang.org/issues/19370#change-102676 * Author: zverok (Victor Shepelev) * Status: Assigned * Priority: Normal * Assignee: matz (Yukihiro Matsumoto) ---------------------------------------- Just to clarify: are anonymous parameters delegation is planned to support in blocks? It would be a nice addition, if it is possible to implement: ```ruby # data in form [request method, URL, params]: [ [:get, 'https://google.com', {q: 'Ruby'}, {'User-Argent': 'Google-Chrome'}], [:post, 'https://gist.github.com', 'body'], # ... ].each { |method, *| request(method.to_s.upcase, *) } ``` ...and at the very least, consistent with what the method definition can have. If they are NOT planned to be implemented, I believe that at least error messages should be made much clearer, because currently, this would happen while running the code above:
no anonymous rest parameter (SyntaxError)
I understand the reason (the `request` clause doesn't "see" anonymous parameter of the **block**, and claims that current **method** doesn't have them), but it looks honestly confusing and inconsistent. -- https://bugs.ruby-lang.org/