[MacRuby] #1197: __method__ and __callee__ return nil if called inside of a block

MacRuby ruby-noreply at macosforge.org
Tue Mar 15 18:26:57 PDT 2011

#1197: __method__ and __callee__ return nil if called inside of a block
 Reporter:  warpflyght@…              |       Owner:  lsansonetti@…        
     Type:  defect                    |      Status:  new                  
 Priority:  minor                     |   Milestone:                       
Component:  MacRuby                   |    Keywords:                       
 Under Ruby 1.9.1, calling `__method__`/`__callee__` inside of a block
 still returns the current method name. Under MacRuby r5278, this does not
 happen. Here's a simple test program that reproduces the issue:

 def foo
   b = proc { warn __method__ }

 def bar(&block)


 Running it produces this output:

 $ macruby /tmp/method.rb

 $ ruby1.9 /tmp/method.rb

 To work around this, the value of `__method__` can be captured in a
 variable outside of the block and referenced inside.

Ticket URL: <http://www.macruby.org/trac/ticket/1197>
MacRuby <http://macruby.org/>

More information about the macruby-tickets mailing list