diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2002-02-25 09:16:25 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2002-02-25 09:16:25 +0000 |
commit | 6d47b8a9cc988bb210fc44ce991a0212d97296e4 (patch) | |
tree | 62abd8947818da9f117b0f2fe552b8b6f6c43a33 /eval.c | |
parent | aaa30fd040781355739b5cceb372df46851a2f5b (diff) |
* eval.c (method_inspect): should not dump core for unbound
singleton methods.
* object.c (rb_mod_to_s): better description.
* hash.c (env_select): should path the assoc list.
* process.c (rb_syswait): thread kludge; should be fixed to
support native thread.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2128 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'eval.c')
-rw-r--r-- | eval.c | 31 |
1 files changed, 18 insertions, 13 deletions
@@ -6941,28 +6941,33 @@ method_inspect(method) rb_str_buf_cat2(str, ": "); if (FL_TEST(data->klass, FL_SINGLETON)) { - VALUE v; + VALUE v = rb_iv_get(data->klass, "__attached__"); - rb_str_buf_append(str, rb_inspect(data->recv)); - v = rb_iv_get(data->klass, "__attached__"); - if (data->recv != v) { - rb_str_buf_cat2(str, "("); + if (data->recv == Qundef) { + rb_str_buf_append(str, rb_inspect(data->klass)); + } + else if (data->recv == v) { rb_str_buf_append(str, rb_inspect(v)); - rb_str_buf_cat2(str, ")."); + sharp = "."; } else { - rb_str_buf_cat2(str, "."); + rb_str_buf_append(str, rb_inspect(data->recv)); + rb_str_buf_cat2(str, "("); + rb_str_buf_append(str, rb_inspect(v)); + rb_str_buf_cat2(str, ")"); + sharp = "."; } } else { rb_str_buf_cat2(str, rb_class2name(data->rklass)); - rb_str_buf_cat2(str, "("); - s = rb_class2name(data->klass); - rb_str_buf_cat2(str, s); - rb_str_buf_cat2(str, ")#"); + if (data->rklass != data->klass) { + rb_str_buf_cat2(str, "("); + rb_str_buf_cat2(str, rb_class2name(data->klass)); + rb_str_buf_cat2(str, ")"); + } } - s = rb_id2name(data->oid); - rb_str_buf_cat2(str, s); + rb_str_buf_cat2(str, sharp); + rb_str_buf_cat2(str, rb_id2name(data->oid)); rb_str_buf_cat2(str, ">"); return str; |