summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-04-21 19:16:40 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-04-21 19:16:40 +0000
commit8630b6b0b0a5cf6e29cbb8717ebcc942fec5be67 (patch)
tree2fc23fc96b14d2ca655464352904e5bdfc799197
parentc67dbe21fae4508dc8a75c6c08267cce454a2d52 (diff)
downloadruby-8630b6b0b0a5cf6e29cbb8717ebcc942fec5be67.tar.gz
ruby-8630b6b0b0a5cf6e29cbb8717ebcc942fec5be67.tar.xz
ruby-8630b6b0b0a5cf6e29cbb8717ebcc942fec5be67.zip
* eval.c (rb_mod_define_method): allow binding methods to modules.
[ruby-dev:23410] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@6194 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog5
-rw-r--r--eval.c3
2 files changed, 7 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index cb35c5238..8e97d3846 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Thu Apr 22 04:16:34 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * eval.c (rb_mod_define_method): allow binding methods to modules.
+ [ruby-dev:23410]
+
Wed Apr 21 23:04:42 2004 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>
* lib/rinda/rinda.rb, test/rinda/test_rinda.rb: check Hash tuple size.
diff --git a/eval.c b/eval.c
index e04ea3970..9f099cdca 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));
}