[ruby-dev:47849] [ruby-trunk - Bug #9236] include + include + alias_method + super behaviour inconsistency between 1.9 and 2.0
From:
"matthewd (Matthew Draper)" <matthew@...>
Date:
2013-12-11 03:01:29 UTC
List:
ruby-dev #47849
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 ((<Rails Core ML by Gary Weaver|URL:https://groups.google.com/forum/#!topic/rubyonrails-core/z5Japo3oIzk>)).
=end
--
http://bugs.ruby-lang.org/