-
-
Notifications
You must be signed in to change notification settings - Fork 942
Closed
Labels
Milestone
Description
Environment
- jruby 9.1.5.0 (2.3.1) 2016-09-07 036ce39 Java HotSpot(TM) 64-Bit Server VM 25.72-b15 on 1.8.0_72-b15 +jit [darwin-x86_64]
- Darwin Evans-2015-MacBook-Pro.local 15.6.0 Darwin Kernel Version 15.6.0: Mon Aug 29 20:21:34 PDT 2016; root:xnu-3248.60.11~1/RELEASE_X86_64 x86_64
Expected Behavior
MRI
class Foo
def bar
puts "*** class method"
end
end
object = Foo.new
object.define_singleton_method "bar" do
puts "*** singleton method"
end
cloned = object.clone
cloned.singleton_methods
#=> bar
if cloned.singleton_methods.include?(:bar)
cloned.singleton_class.class_eval do
remove_method :bar
end
end
cloned.bar
#=> *** class methodActual Behavior
class Foo
def bar
puts "*** class method"
end
end
object = Foo.new
object.define_singleton_method "bar" do
puts "*** singleton method"
end
cloned = object.clone
cloned.singleton_methods
#=> bar
if cloned.singleton_methods.include?(:bar)
cloned.singleton_class.class_eval do
remove_method :bar
end
endNameError: method 'bar' not defined in #<Class:0x45752059>
from org/jruby/RubyModule.java:2882:in `remove_method'
from (irb):20:in `block in evaluate'
from org/jruby/RubyModule.java:2832:in `module_eval'
from (irb):19:in `<eval>'
from org/jruby/RubyKernel.java:995:in `eval'
from org/jruby/RubyKernel.java:1296:in `loop'
from org/jruby/RubyKernel.java:1115:in `catch'
from org/jruby/RubyKernel.java:1115:in `catch'
from /Users/eprothro/.rbenv/versions/jruby-9.1.5.0/bin/irb:13:in `<main>'
Reactions are currently unavailable