From a23a67a1d00fc8cb14f2189507fa73b3c4830c6f Mon Sep 17 00:00:00 2001 From: akr Date: Mon, 15 Jun 2009 16:52:00 +0000 Subject: * vm_eval.c (rb_call0): refine exception message for hidden objects. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@23696 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- vm_eval.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'vm_eval.c') diff --git a/vm_eval.c b/vm_eval.c index 2dff373e4..096c0565b 100644 --- a/vm_eval.c +++ b/vm_eval.c @@ -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); -- cgit