[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:
{{{
#!ruby
def foo
b = proc { warn __method__ }
bar(&b)
end
def bar(&block)
block.call
end
foo
}}}
Running it produces this output:
{{{
#!sh
$ macruby /tmp/method.rb
$ ruby1.9 /tmp/method.rb
foo
}}}
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