From: "shugo (Shugo Maeda)" Date: 2022-11-16T23:03:01+00:00 Subject: [ruby-dev:51198] [Ruby master Bug#19132] `**` を引数に指定すると no anonymous keyword rest parameter になる Issue #19132 has been updated by shugo (Shugo Maeda). shugo (Shugo Maeda) wrote in #note-1: > 内部的な変数名が変わってtest/ruby/test_ast.rbが失敗するようになったのでその部分は対処しましたが、この修正方法だと他にも問題があるかもしれません。 案の定RBSのテストで失敗したのでANON_KEYWORD_REST_IDを内部IDに変えてみたのですが、今度はUnboundMethod#parametersなどで `:**` が返ることを期待しているテストがコケるようになってしまいました。 https://github.com/ruby/ruby/pull/6743#issuecomment-1317787459 内部IDか `:**` のどちらかに統一して、必要ならこれらのテストかRBSを修正した方がいい気がするのですが、どうするのがいいでしょう。 ---------------------------------------- Bug #19132: `**` を引数に指定すると no anonymous keyword rest parameter になる https://bugs.ruby-lang.org/issues/19132#change-100131 * Author: tommy (Masahiro Tomita) * Status: Open * Priority: Normal * ruby -v: ruby 3.2.0preview3 (2022-11-14) [arm64-darwin21] * Backport: 2.7: UNKNOWN, 3.0: UNKNOWN, 3.1: UNKNOWN ---------------------------------------- Ruby 3.2.0-preview3 で次のスクリプトを実行するとエラーになります。 ```ruby def hoge(a, *, k: nil, **) foo(*, **) end ``` ``` % ruby hoge.rb hoge.rb:2: no anonymous keyword rest parameter ``` 次のようにキーワードパラメータが `**` だけであればエラーになりませんでした。 ```ruby def hoge(a, *, **) foo(*, **) end ``` -- https://bugs.ruby-lang.org/