Actions
Bug #9626
closedalias, prepend and super cause unexpected SystemStackError
    Bug #9626:
    alias, prepend and super cause unexpected SystemStackError
  
Status:
Rejected
Assignee:
-
Target version:
-
ruby -v:
ruby 2.1.1p76 (2014-02-24 revision 45161) [x86_64-linux]
Description
module M
  def foo
    super
  end
end
class C
  def foo
    'C#foo'
  end
  prepend M
  alias_method :orig_foo, :foo
  def foo
    orig_foo
  end
end
C.new.foo
I expect: M#foo -> C#foo -> C#orig_foo and get 'C#foo'
Actual: M#foo -> C#foo -> M#foo -> ... and get stack level too deep (SystemStackError)
If I swap the order of alias_method and prepend, it works as I expect.
I think it's closely related to #7842.
        
           Updated by nobu (Nobuyoshi Nakada) over 11 years ago
          Updated by nobu (Nobuyoshi Nakada) over 11 years ago
          
          
        
        
      
      
    
Actions