[ruby-core:95900] [Ruby master Feature#16356] Method#inspect of argument forwarding

From: zverok.offline@...
Date: 2019-11-20 20:11:29 UTC
List: ruby-core #95900
Issue #16356 has been updated by zverok (Victor Shepelev).


`#inspect` just follows whatever `#parameters` say. 

But I indeed find that `#parameters` return value is kinda weird for this case:

```
./ruby --disable-gems -e "def m(...); end; p method(:m).parameters"
[[:rest, :*], [:block, :&]]
```
E.g., literally, "parameter of the *type* `:rest`, *named* `*`, and parameter of the *type* `:block`, *named* `&`".

I believe that a proper return value for parameters in this case would be, probably
```ruby
[[:rest], [:keyrest], [:block]]
```
If it would be so (and it seems reasonable), `#inspect` will return `#m(*, **, &)`

----------------------------------------
Feature #16356: Method#inspect of argument forwarding
https://bugs.ruby-lang.org/issues/16356#change-82742

* Author: znz (Kazuhiro NISHIYAMA)
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
----------------------------------------
Current behavior includes `(**, &&)`.
Is this intentional?

```
% ruby -e 'def mf(...);end;p method(:mf)'
#<Method: main.mf(**, &&) -e:1>
```

I added tests of current behavior at https://github.com/ruby/ruby/commit/777973084e599cf9efa490173709b187fb507f90



-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:[email protected]?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>

In This Thread

Prev Next