summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2012-10-28 10:43:57 -0700
committerYukihiro "Matz" Matsumoto <[email protected]>2012-10-28 10:43:57 -0700
commitd7d5c15b54e764497aa69667d3e5d849469eb373 (patch)
treed8cf86eebab9987a1c78a24fbcdb6967b6096d70 /src
parent69e2d272457f2f096c2514d8afb90006ed577fc9 (diff)
parente407022b10505dd01da5829cfe9b2d978d266e64 (diff)
downloadmruby-d7d5c15b54e764497aa69667d3e5d849469eb373.tar.gz
mruby-d7d5c15b54e764497aa69667d3e5d849469eb373.zip
Merge pull request #511 from iij/pr-no-method-error-mesg
change the error message (NoMethodError, NameError)
Diffstat (limited to 'src')
-rw-r--r--src/class.c8
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();
}