summaryrefslogtreecommitdiff
path: root/eval.c
diff options
context:
space:
mode:
Diffstat (limited to 'eval.c')
-rw-r--r--eval.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/eval.c b/eval.c
index e04ea39703..9f099cdca3 100644
--- a/eval.c
+++ b/eval.c
@@ -9098,7 +9098,8 @@ rb_mod_define_method(argc, argv, mod)
if (FL_TEST(rklass, FL_SINGLETON)) {
rb_raise(rb_eTypeError, "cannot bind singleton method to a different class");
}
- if (RCLASS(rklass)->super && !RTEST(rb_class_inherited_p(mod, rklass))) {
+ if (RCLASS(mod)->super && RCLASS(rklass)->super &&
+ !RTEST(rb_class_inherited_p(mod, rklass))) {
rb_raise(rb_eTypeError, "bind argument must be a subclass of %s",
rb_class2name(rklass));
}