Actions
Bug #6981
closedset_trace_func passes strange bindng on method call defined by define_method
Description
set_trace_func passes strange binding on method call ("call") if invoked method was defined by define_method. Correctly speaking, the caller's binding was passed.
example¶
class C
define_method(:foo){
p:foo
}
def bar
p:bar
end
end
set_trace_func(lambda{|ev, *args|
if ev == 'call'
p eval('self', args[3])
end
})
C.new.foo
#=> main
C.new.bar
#=> #<C:0x2bbc360>
On Ruby 1.8, there is no problem.
Updated by ko1 (Koichi Sasada) over 9 years ago
- Status changed from Open to Closed
Ruby 2.1 solved this issue.
Actions
Like0
Like0Like0