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/