mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* object.c (rb_class_inherited_p): allow iclasses to be tested for
inheritance. [Bug #8686] [ruby-core:56174] * test/ruby/test_method.rb: add test git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42380 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
b649592c4a
commit
5e98991f1b
3 changed files with 24 additions and 1 deletions
|
@ -1,3 +1,10 @@
|
|||
Mon Aug 5 10:01:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
|
||||
|
||||
* object.c (rb_class_inherited_p): allow iclasses to be tested for
|
||||
inheritance. [Bug #8686] [ruby-core:56174]
|
||||
|
||||
* test/ruby/test_method.rb: add test
|
||||
|
||||
Mon Aug 5 06:13:48 2013 Zachary Scott <e@zzak.io>
|
||||
|
||||
* enumerator.c: [DOC] Remove reference to Enumerator::Lazy#cycle
|
||||
|
|
2
object.c
2
object.c
|
@ -1519,7 +1519,7 @@ rb_class_inherited_p(VALUE mod, VALUE arg)
|
|||
VALUE start = mod;
|
||||
|
||||
if (mod == arg) return Qtrue;
|
||||
if (!CLASS_OR_MODULE_P(arg)) {
|
||||
if (!CLASS_OR_MODULE_P(arg) && !RB_TYPE_P(arg, T_ICLASS)) {
|
||||
rb_raise(rb_eTypeError, "compared with non class/module");
|
||||
}
|
||||
arg = RCLASS_ORIGIN(arg);
|
||||
|
|
|
@ -262,6 +262,22 @@ class TestMethod < Test::Unit::TestCase
|
|||
end
|
||||
end
|
||||
|
||||
def test_define_singleton_method_with_extended_method
|
||||
bug8686 = "[ruby-core:56174]"
|
||||
|
||||
m = Module.new do
|
||||
extend self
|
||||
|
||||
def a
|
||||
"a"
|
||||
end
|
||||
end
|
||||
|
||||
assert_nothing_raised do
|
||||
m.define_singleton_method(:a, m.method(:a))
|
||||
end
|
||||
end
|
||||
|
||||
def test_define_method_transplating
|
||||
feature4254 = '[ruby-core:34267]'
|
||||
m = Module.new {define_method(:meth, M.instance_method(:meth))}
|
||||
|
|
Loading…
Add table
Reference in a new issue