From: "nobu (Nobuyoshi Nakada)" <nobu@...> Date: 2013-12-18T12:50:18+09:00 Subject: [ruby-dev:47854] [ruby-trunk - Bug #9236] include + include + alias_method + super behaviour inconsistency between 1.9 and 2.0 Issue #9236 has been updated by nobu (Nobuyoshi Nakada). Backport changed from 1.9.3: UNKNOWN, 2.0.0: UNKNOWN to 1.9.3: DONTNEED, 2.0.0: REQUIRED ---------------------------------------- Bug #9236: include + include + alias_method + super behaviour inconsistency between 1.9 and 2.0 https://bugs.ruby-lang.org/issues/9236#change-43735 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: REQUIRED =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 ((<Rails Core ML by Gary Weaver|URL:https://groups.google.com/forum/#!topic/rubyonrails-core/z5Japo3oIzk>)). =end -- http://bugs.ruby-lang.org/