From: "nagachika (Tomoyuki Chikanaga)" Date: 2013-12-23T22:58:58+09:00 Subject: [ruby-dev:47859] [ruby-trunk - Bug #9236] include + include + alias_method + super behaviour inconsistency between 1.9 and 2.0 Issue #9236 has been updated by nagachika (Tomoyuki Chikanaga). Backport changed from 1.9.3: DONTNEED, 2.0.0: REQUIRED to 1.9.3: DONTNEED, 2.0.0: DONE r44175 and r44179 were backported to ruby_2_0_0 at r44345, and additionally r44198 was backported at 44366. ---------------------------------------- Bug #9236: include + include + alias_method + super behaviour inconsistency between 1.9 and 2.0 https://bugs.ruby-lang.org/issues/9236#change-43854 Author: matsuda (Akira Matsuda) Status: Closed 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: DONTNEED, 2.0.0: DONE =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/