From d894e1d9301e4a87a42fa57be6492a9e01e5948f Mon Sep 17 00:00:00 2001 From: shyouhei Date: Mon, 29 Mar 2010 05:59:46 +0000 Subject: instance_methods should not special-case singleton classes, fixes #2993 Signed-off-by: URABE, Shyouhei git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27085 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/ruby/test_module.rb | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'test/ruby') diff --git a/test/ruby/test_module.rb b/test/ruby/test_module.rb index f90543196b..453d850bb4 100644 --- a/test/ruby/test_module.rb +++ b/test/ruby/test_module.rb @@ -141,6 +141,11 @@ class TestModule < Test::Unit::TestCase :bClass3 end end + + class CClass < BClass + def self.cClass + end + end MyClass = AClass.clone class MyClass @@ -281,6 +286,9 @@ class TestModule < Test::Unit::TestCase assert_equal([:user, :mixin].sort, User.instance_methods(true).sort) assert_equal([:mixin], Mixin.instance_methods) assert_equal([:mixin], Mixin.instance_methods(true)) + assert_equal([:cClass], (class << CClass; self; end).instance_methods(false)) + assert_equal([], (class << BClass; self; end).instance_methods(false)) + assert_equal([:cm2], (class << AClass; self; end).instance_methods(false)) # Ruby 1.8 feature change: # #instance_methods includes protected methods. #assert_equal([:aClass], AClass.instance_methods(false)) -- cgit v1.2.3