From c94f8ab926a524a633a739e8a2e69016e18354d2 Mon Sep 17 00:00:00 2001 From: nobu Date: Wed, 21 Apr 2004 19:16:40 +0000 Subject: [PATCH] * eval.c (rb_mod_define_method): allow binding methods to modules. [ruby-dev:23410] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6194 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 +++++ eval.c | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index cb35c52385..8e97d38464 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Thu Apr 22 04:16:34 2004 Nobuyoshi Nakada + + * eval.c (rb_mod_define_method): allow binding methods to modules. + [ruby-dev:23410] + Wed Apr 21 23:04:42 2004 Masatoshi SEKI * lib/rinda/rinda.rb, test/rinda/test_rinda.rb: check Hash tuple size. 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)); }