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


Ok, also working for me here with r38676. Should have checked the new versions before, sorry. Have a nice day!
----------------------------------------
Bug #7643: call to super in define_method in refine results in stack level too deep
https://bugs.ruby-lang.org/issues/7643#change-35180

Author: beatrichartz (Beat Richartz)
Status: Feedback
Priority: Normal
Assignee: shugo (Shugo Maeda)
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/