Project

General

Profile

Bug #3351

Updated by ko1 (Koichi Sasada) over 7 years ago

=begin 
  It looks like `super` behavior is a bit different in 1.8 and 1.9. Please find the example below: 

 ```ruby  
  
 
  class Base 
    def foo 
      puts "bar" 
    end 
  end 
 
  module Override 
    def foo 
      puts "override" 
      super 
    end 
  end 
 
 
  class A < Base 
  end 
 
  class B < A 
  end 
 
  B.send(:include, Override) 
  A.send(:include, Override) 
 
  B.new.foo 
 
  ruby 1.8.7 (2009-06-12 patchlevel 174) [i486-linux] output: 
 
 
  override 
  override 
  bar 
 ``` 
 
  
 
 
  and ruby 1.9.3dev (2010-05-26 trunk 28028) [i686-linux] output: 
 
 ``` 
  
 
  .... 
  override 
  override 
  override 
  override 
  override 
  super.rb:9: stack level too deep (SystemStackError) 
 ``` 
 
 
 
 
  Hope that helps. 
 =end 

Back