summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/object.c1
-rw-r--r--test/t/module.rb8
2 files changed, 5 insertions, 4 deletions
diff --git a/src/object.c b/src/object.c
index f8f41bfe8..c834ee04f 100644
--- a/src/object.c
+++ b/src/object.c
@@ -487,6 +487,7 @@ mrb_obj_is_kind_of(mrb_state *mrb, mrb_value obj, struct RClass *c)
mrb_raise(mrb, E_TYPE_ERROR, "class or module required");
}
+ c = c->origin;
while (cl) {
if (cl == c || cl->mt == c->mt)
return TRUE;
diff --git a/test/t/module.rb b/test/t/module.rb
index 7b4a8fec7..a1996f5f6 100644
--- a/test/t/module.rb
+++ b/test/t/module.rb
@@ -543,21 +543,21 @@ assert('Module#prepend') do
b = labeled_module('b') { include a }
c = labeled_module('c') { prepend b }
- assert bug6654 do
+ #assert bug6654 do
# the Module#< operator should be used here instead, but we don't have it
assert_include(c.ancestors, a)
assert_include(c.ancestors, b)
- end
+ #end
bug8357 = '[ruby-core:54736] [Bug #8357]'
b = labeled_module('b') { prepend a }
c = labeled_class('c') { include b }
- assert bug8357 do
+ #assert bug8357 do
# the Module#< operator should be used here instead, but we don't have it
assert_include(c.ancestors, a)
assert_include(c.ancestors, b)
- end
+ #end
bug8357 = '[ruby-core:54742] [Bug #8357]'
assert_kind_of(b, c.new, bug8357)