From: "shugo (Shugo Maeda)" Date: 2013-01-07T12:09:14+09:00 Subject: [ruby-core:51279] [ruby-trunk - Bug #7643][Rejected] call to super in define_method in refine results in stack level too deep Issue #7643 has been updated by shugo (Shugo Maeda). Status changed from Feedback to Rejected beatrichartz (Beat Richartz) wrote: > Ok, also working for me here with r38676. Should have checked the new versions before, sorry. Have a nice day! Thanks for your confirmation. So I close this issue. ---------------------------------------- Bug #7643: call to super in define_method in refine results in stack level too deep https://bugs.ruby-lang.org/issues/7643#change-35243 Author: beatrichartz (Beat Richartz) Status: Rejected 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/