From: cichol@... Date: 2015-12-16T14:18:30+00:00 Subject: [ruby-core:72186] [Ruby trunk - Bug #11826] [Open] In 'prepended', 'class_eval' rewriting a method take no effect Issue #11826 has been reported by cichol tsai. ---------------------------------------- Bug #11826: In 'prepended', 'class_eval' rewriting a method take no effect https://bugs.ruby-lang.org/issues/11826 * Author: cichol tsai * Status: Open * Priority: Normal * Assignee: * ruby -v: * Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN ---------------------------------------- ~~~ module M def self.prepended(clz) clz.class_eval do def [](k) p 1 end end end end module N def self.included(clz) clz.class_eval do def []=(k, v) p 2 end end end end class Hash prepend M include N end Hash.new[1] Hash.new[1]=1 ~~~ Running this example gives no output, which is expected to be '1 2'. I am using 'ruby 2.2.2p95 (2015-04-13 revision 50295) [x64-mingw32]'. Thanks in advanced. -- https://bugs.ruby-lang.org/