From: "matthewd (Matthew Draper)" Date: 2013-12-11T12:01:29+09:00 Subject: [ruby-dev:47849] [ruby-trunk - Bug #9236] include + include + alias_method + super behaviour inconsistency between 1.9 and 2.0 Issue #9236 has been updated by matthewd (Matthew Draper). git bisect says this changed in r36595, if it helps. ---------------------------------------- Bug #9236: include + include + alias_method + super behaviour inconsistency between 1.9 and 2.0 https://bugs.ruby-lang.org/issues/9236#change-43594 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 =begin 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 (()). =end -- http://bugs.ruby-lang.org/