summaryrefslogtreecommitdiffstats
path: root/vm_eval.c
diff options
context:
space:
mode:
authorakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-06-15 16:52:00 +0000
committerakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-06-15 16:52:00 +0000
commita23a67a1d00fc8cb14f2189507fa73b3c4830c6f (patch)
treed1b8e558466dd9116f844759af6f79a90e25e4a2 /vm_eval.c
parent3dff575e22517074ae9da413590be7af90ac5c7a (diff)
downloadruby-a23a67a1d00fc8cb14f2189507fa73b3c4830c6f.tar.gz
ruby-a23a67a1d00fc8cb14f2189507fa73b3c4830c6f.tar.xz
ruby-a23a67a1d00fc8cb14f2189507fa73b3c4830c6f.zip
* 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
Diffstat (limited to 'vm_eval.c')
-rw-r--r--vm_eval.c7
1 files changed, 5 insertions, 2 deletions
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);