From: "beatrichartz (Beat Richartz)" Date: 2013-01-01T02:49:13+09:00 Subject: [ruby-core:51210] [ruby-trunk - Bug #7643][Open] call to super in define_method in refine results in stack level too deep 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/