Bug #8855
{Single}Forwardable#def_delegators が、Stringでメソッド名を渡された時だけ __id__ と __send__ が取り除かれる
Description
https://github.com/ruby/ruby/pull/385
Forwardable#def_delegators と SingleForwardable#def_delegators ですが、
Stringでメソッド名を渡された時だけ id と send を取り除いているようです。
ここでStringとSymbolの間に違いが出る理由に思い至らなかったので、パッチを書いてみました。
御確認下さい。
Associated revisions
History
Updated by kachick (Kenichi Kamiya) over 6 years ago
すみません、タイトル等の編集途中に誤って送信してしまったのですが、修正する方法がわかりません・・・
またパッチと再現コードはgithub側へ添付済みなのですが、こちらへコピーした方がいいのでしょうか?
Updated by usa (Usaku NAKAMURA) over 6 years ago
- Subject changed from {Single}Forwardable#def_delegators が、Stringでメソッド名を渡された時だけ __id__ to__send__ as String names. to {Single}Forwardable#def_delegators が、Stringでメソッド名を渡された時だけ __id__ と __send__ が取り除かれる
- Status changed from Open to Assigned
たぶん権限がないとtitleは変更できないんじゃないかと思うので、変更しました。
githubにあるコードはURLの提示があるわけなので、いちいちコピーしなくてもいいと思います。
Updated by kachick (Kenichi Kamiya) over 6 years ago
御対応ありがとうございます!
お手数をお掛けしました。
Updated by jeremyevans0 (Jeremy Evans) 4 months ago
- Backport deleted (
1.9.3: UNKNOWN, 2.0.0: UNKNOWN)
This bug is still present in the master branch. I've submitted a pull request to fix it: https://github.com/ruby/forwardable/pull/4
Updated by nagachika (Tomoyuki Chikanaga) about 1 month ago
merged into ruby core at d00551a7bb1d5dbabb0a8c95d6bd2d9d4e86934a
[ruby/forwardable] Make def_{instance,single}delegators skip :send_ and :id
Previously, send and id were skipped if provided as strings,
but not skipped if provided as symbols.
Fixes Ruby Bug 8855.
https://github.com/ruby/forwardable/commit/2e61c8c66c