From: "zverok (Victor Shepelev) via ruby-core" Date: 2023-11-01T14:17:22+00:00 Subject: [ruby-core:115220] [Ruby master Feature#19370] Anonymous parameters for blocks? Issue #19370 has been updated by zverok (Victor Shepelev). After considering some examples, I believe it would be more consistent to just allow anonymous parameters in blocks, without further restrictions. The example of "confusing" example above: ```ruby def test(*) # ... proc { |*| p(*) }.call(1) # which * is that? end ``` ...can be rewritten with named arguments as well: ```ruby def test(x) # ... proc { |x| p(x) }.call(1) # which x is that? end ``` In any case, the current behavior is the most confusing, as demonstrated by #19983 ---------------------------------------- Feature #19370: Anonymous parameters for blocks? https://bugs.ruby-lang.org/issues/19370#change-105137 * 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/ ______________________________________________ ruby-core mailing list -- ruby-core@ml.ruby-lang.org To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org ruby-core info -- https://ml.ruby-lang.org/mailman3/postorius/lists/ruby-core.ml.ruby-lang.org/