Issue #7643 has been reported by beatrichartz (Beat Richartz).

----------------------------------------
Bug #7643: call to super in define_method in refine results in stack level too deep
https://bugs.ruby-lang.org/issues/7643

Author: beatrichartz (Beat Richartz)
Status: Open
Priority: Normal
Assignee: 
Category: 
Target version: 
ruby -v: ruby 2.0.0dev (2012-12-01 trunk 38126) [x86_64-darwin12.2.1]


=begin
When define_method is used within the refine block argument, calls to super will result in a stack level too deep. Definitions with def can call super without problems.

(({module A
  refine Fixnum do
    %i(+ -).each do |m|
      define_method m do |other|
        super(other)
      end
    end
    
    def * other
      super(other)
    end
  end
end

class B
  using A
  
  def working
    puts 'working'
    1 * 1
  end
  
  def error
    puts 'stack level too deep'
    1 + 1
  end
  
end

puts B.new.working
puts B.new.error}))

=end



-- 
http://bugs.ruby-lang.org/