From: "matsuda (Akira Matsuda)" <ronnie@...>
Date: 2013-12-11T00:22:45+09:00
Subject: [ruby-dev:47847] [ruby-trunk - Bug #9236] include + include +	alias_method + super behaviour inconsistency between 1.9 and 2.0


Issue #9236 has been updated by matsuda (Akira Matsuda).

Description updated

=begin
=end

----------------------------------------
Bug #9236: include + include + alias_method + super behaviour inconsistency between 1.9 and 2.0
https://bugs.ruby-lang.org/issues/9236#change-43578

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/