From: "K.Kosako" Date: 2001-03-27T15:28:38+09:00 Subject: [ruby-dev:12682] rb_mod_define_method rb_mod_define_method()で、 method cacheがクリアされていないバグです。 --- eval.c.orig Mon Mar 26 17:57:09 2001 +++ eval.c Tue Mar 27 15:00:54 2001 @@ -6730,6 +6730,7 @@ } if (TYPE(body) != T_DATA) { /* type error */ + rb_raise(rb_eTypeError, "wrong argument type (expected Procedure)"); } if (RDATA(body)->dmark == (RUBY_DATA_FUNC)bm_mark) { rb_add_method(mod, id, NEW_DMETHOD(method_unbind(body)), NOEX_PUBLIC); @@ -6739,8 +6740,10 @@ } else { /* type error */ + rb_raise(rb_eTypeError, "wrong argument type (Unknown Procedure)"); } + rb_clear_cache_by_id(id); return body; } ---- 小迫@ソフネック 渋谷区恵比寿1-15-1