diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/class.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/class.c b/src/class.c index c4058ad67..3e54afede 100644 --- a/src/class.c +++ b/src/class.c @@ -852,7 +852,9 @@ mrb_method_search(mrb_state *mrb, struct RClass* c, mrb_sym mid) m = mrb_method_search_vm(mrb, &c, mid); if (!m) { - mrb_raisef(mrb, E_NOMETHOD_ERROR, "no method named %s\n", mrb_sym2name(mrb, mid)); + mrb_raisef(mrb, E_NAME_ERROR, "undefined method '%s' for class %s", + mrb_sym2name(mrb, mid), + RSTRING_PTR(mrb_funcall(mrb, mrb_obj_value(c), "inspect", 0))); } return m; } @@ -1008,7 +1010,9 @@ mrb_bob_missing(mrb_state *mrb, mrb_value mod) if (!SYMBOL_P(name)) { mrb_raise(mrb, E_TYPE_ERROR, "name should be a symbol"); } - mrb_raisef(mrb, E_NOMETHOD_ERROR, "no method named %s", mrb_sym2name(mrb, mrb_symbol(name))); + mrb_raisef(mrb, E_NOMETHOD_ERROR, "undefined method '%s' for %s", + mrb_sym2name(mrb, mrb_symbol(name)), + RSTRING_PTR(mrb_funcall(mrb, mod, "inspect", 0))); /* not reached */ return mrb_nil_value(); } |
