Issue #19134 has been updated by shugo (Shugo Maeda).
I've created a pull request:
https://github.com/ruby/ruby/pull/6818
With this change a test of rbs.gem fails because argument types of` def foo(...)` is
changed to `(*untyped, **untyped **)` from `(*untyped)`, but I believe it's right.
(however, the specifal variable name `**` should be hidden by rbs.gem.)
I've created a issue:
https://github.com/ruby/rbs/issues/1163
----------------------------------------
Feature #19134: ** is not allowed in def foo(...)
https://bugs.ruby-lang.org/issues/19134#change-100289
* Author: shugo (Shugo Maeda)
* Status: Open
* Priority: Normal
* Assignee: matz (Yukihiro Matsumoto)
----------------------------------------
`*` and `&` are allowed in the body of a method with `...` argument forwarding, but
`**` is not allowed.
```
def foo(...)
bar(*) # OK
baz(&) # OK
quux(**) # NG
end
```
Is it intended behavior?
It seems that parse.y has code like `#ifdef RUBY3_KEYWORDS`, and if RUBY3_KEYWORDS, `**`
will also be supported.
--
https://bugs.ruby-lang.org/