diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2012-10-28 10:43:57 -0700 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2012-10-28 10:43:57 -0700 |
| commit | d7d5c15b54e764497aa69667d3e5d849469eb373 (patch) | |
| tree | d8cf86eebab9987a1c78a24fbcdb6967b6096d70 | |
| parent | 69e2d272457f2f096c2514d8afb90006ed577fc9 (diff) | |
| parent | e407022b10505dd01da5829cfe9b2d978d266e64 (diff) | |
| download | mruby-d7d5c15b54e764497aa69667d3e5d849469eb373.tar.gz mruby-d7d5c15b54e764497aa69667d3e5d849469eb373.zip | |
Merge pull request #511 from iij/pr-no-method-error-mesg
change the error message (NoMethodError, NameError)
| -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(); } |
