aboutsummaryrefslogtreecommitdiffstats
path: root/test/ruby/test_module.rb
diff options
context:
space:
mode:
authorshyouhei <shyouhei@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-03-29 05:59:46 +0000
committershyouhei <shyouhei@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-03-29 05:59:46 +0000
commitd894e1d9301e4a87a42fa57be6492a9e01e5948f (patch)
tree7bb4d271bf129a75cd9c51a0a18fa6ccc0f6c5e2 /test/ruby/test_module.rb
parent0a5d4d29e2404778d38410ba309443fa6e34ab03 (diff)
downloadruby-d894e1d9301e4a87a42fa57be6492a9e01e5948f.tar.gz
instance_methods should not special-case singleton classes, fixes #2993
Signed-off-by: URABE, Shyouhei <shyouhei@ruby-lang.org> git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27085 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/ruby/test_module.rb')
-rw-r--r--test/ruby/test_module.rb8
1 files changed, 8 insertions, 0 deletions
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))