From: "matsuda (Akira Matsuda)" <ronnie@...> Date: 2013-12-11T00:19:25+09:00 Subject: [ruby-dev:47846] [ruby-trunk - Bug #9236][Open] include + include + alias_method + super behaviour inconsistency between 1.9 and 2.0 Issue #9236 has been reported by matsuda (Akira Matsuda). ---------------------------------------- Bug #9236: include + include + alias_method + super behaviour inconsistency between 1.9 and 2.0 https://bugs.ruby-lang.org/issues/9236 Author: matsuda (Akira Matsuda) Status: Open Priority: Normal Assignee: ko1 (Koichi Sasada) Category: core Target version: ruby -v: ruby 2.1.0dev (2013-12-10 trunk 44126) [x86_64-darwin12.0] Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN The following code behaves differently under Ruby 1 and Ruby 2. (({ module Fun def hello orig_hello end end module M1 def hello p 'hello!' end end module M2 def hello super end end class Foo include M1 include M2 alias_method :orig_hello, :hello include Fun end Foo.new.hello })) % ruby -v fun.rb ruby 1.9.3p484 (2013-11-22 revision 43786) [x86_64-darwin12.5.0] "hello!" % ruby -v fun.rb ruby 2.1.0dev (2013-12-10 trunk 44126) [x86_64-darwin12.0] fun.rb:3: stack level too deep (SystemStackError) Let's see if this is an intended spec change or a bug. # This issue was originally reported to Rails Core ML by Gary Weaver. https://groups.google.com/forum/#!topic/rubyonrails-core/z5Japo3oIzk -- http://bugs.ruby-lang.org/