diff options
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | vm_eval.c | 7 |
2 files changed, 9 insertions, 2 deletions
@@ -1,3 +1,7 @@ +Tue Jun 16 01:50:02 2009 Tanaka Akira <akr@fsij.org> + + * vm_eval.c (rb_call0): refine exception message for hidden objects. + Mon Jun 15 22:35:31 2009 Tadayoshi Funaba <tadf@dotrb.org> * bignum.c (rb_big2db): (-Float::MAX.to_i*2).to_f should return @@ -187,9 +187,12 @@ rb_call0(VALUE klass, VALUE recv, ID mid, int argc, const VALUE *argv, rb_thread_t *th = GET_THREAD(); if (!klass) { + const char *adj = "terminated"; + if (!IMMEDIATE_P(recv) && RBASIC(recv)->flags != 0) + adj = "hidden"; rb_raise(rb_eNotImpError, - "method `%s' called on terminated object (%p)", - rb_id2name(mid), (void *)recv); + "method `%s' called on %s object (%p)", + rb_id2name(mid), adj, (void *)recv); } /* is it in the method cache? */ ent = cache + EXPR1(klass, mid); |