Project

General

Profile

Actions

Feature #21813

open

Add [:forward, :...] symbol tuple to indicate forwarding arguments when calling `Method#parameters`

Feature #21813: Add [:forward, :...] symbol tuple to indicate forwarding arguments when calling `Method#parameters`

Added by pabloh (Pablo Herrero) 3 days ago. Updated 2 days ago.

Status:
Open
Assignee:
-
Target version:
-
[ruby-core:124385]

Description

When accessing Method#parameters for a method using forwarding parameters, an unexpected behavior arises:

def foo(*, **, &)
  binding.eval "print(#{(method(__method__).parameters.dig(0,1))})" # Works fine
end

foo(1,2,3,4) # => 1234

def bar(...)
  binding.eval "print(#{(method(__method__).parameters.dig(0,1))})" # Fails!
end

bar(1,2,3,3) # SyntaxError

It's very strange that you can't access the parameters, on eval, using the symbols provided at Method#parameters.

Adding [:forward, :...] or [:forwarding, :...] for those cases feels simply natural.

Actions

Also available in: PDF Atom