From: under_free_fall@... Date: 2021-01-22T23:49:04+00:00 Subject: [ruby-dev:50993] [Ruby master Bug#17571] prependしたArray#[] が反映されない Issue #17571 has been reported by freedom (free dom). ---------------------------------------- Bug #17571: prependしたArray#[] が反映されない https://bugs.ruby-lang.org/issues/17571 * Author: freedom (free dom) * Status: Open * Priority: Normal * 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/