From: merch-redmine@... Date: 2021-04-09T17:23:40+00:00 Subject: [ruby-dev:51047] [Ruby master Bug#17571] prependしたArray#[] が反映されない Issue #17571 has been updated by jeremyevans0 (Jeremy Evans). Status changed from Open to Closed I tested with the master branch and Ruby 3.0.1, and this problem appears fixed. ---------------------------------------- Bug #17571: prependしたArray#[] が反映されない https://bugs.ruby-lang.org/issues/17571#change-91439 * Author: freedom (free dom) * Status: Closed * Priority: Normal * Assignee: ko1 (Koichi Sasada) * ruby -v: ruby 3.0.0p0 (2020-12-25 revision 95aff21468) [x86_64-linux] * Backport: 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN, 3.0: UNKNOWN ---------------------------------------- Arrayクラスにprependを使い`[]`メソッドを差し込んでもprependした`[]`を呼び出しません また、Hashを継承したクラス(以下HashB)のインスタンスでHash#[]を既に呼び出している場合 prependして差し込んだ`[]`を通らずにHash#[]が呼び出されているようです HashBのインスタンス呼び出しがprependより後の場合は期待通り動きました 再現コード(Array) ``` ruby module TestMod def [](*) p :called super end end Array.prepend TestMod [][1] # => 何も出力されない ``` 再現コード(Hash) ``` ruby module TestMod def [](*) p :called super end end class HashB < Hash;end HashB.new[1] Hash.prepend TestMod {}[1] # => 何も出力されない ``` よろしくおねがいします -- https://bugs.ruby-lang.org/