Unable to hide a singleton method created by an extend
------------------------------------------------------

                 Key: JRUBY-5439
                 URL: http://jira.codehaus.org/browse/JRUBY-5439
             Project: JRuby
          Issue Type: Bug
          Components: Interpreter
    Affects Versions: JRuby 1.5.6
         Environment: Mac OSX 10.6.5

            Reporter: Stephen Morss
            Priority: Minor


If I create a module and extend it in an object, creating singleton_methods, I 
should be able to hide one of the object's singleton methods by making it 
private.  This works in MRI Ruby 1.8.7, Ruby 1.9.1, and many of the derivatives 
(I've also tried it in MacRuby 0.8, and REE 1.8.7).

The following code behaves differently in MRI and JRuby 1.5.6

# simple module
module Xmod
  def amethod
  end
end


# create an object with singleton methods by extending Xmod
x = Object.new
x.extend Xmod
p x.singleton_methods # ["amethod"] # we're all good here

# change the singleton method to private
class << x
  private :amethod
end
# shouldn't see private method any more, but JRuby still shows it
p x.singleton_methods # MRI => [], JRuby 1.5.6 => ["amethod"]



Note, I tried to simplify the test by just trying:

y = Object.new
class << y
  def another_method
  end
  private :another_method
end
p y.singleton_methods

But this test case works.  The bug only shows up with a singleton method 
created by an extend.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email


Reply via email to