diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2013-04-04 06:38:12 -0700 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2013-04-04 06:38:12 -0700 |
| commit | b9e4ba8cc1de8ec3dfe4420145f7433c42d7e8df (patch) | |
| tree | d44d4a5a4f354b98dfc18880b31e0c179a3c7878 /src | |
| parent | d8c4f6a08034225e0b02708c548495a2f2f300b5 (diff) | |
| parent | 0969a79e52501d5e90d6589f42d2cb8da2f4595a (diff) | |
| download | mruby-b9e4ba8cc1de8ec3dfe4420145f7433c42d7e8df.tar.gz mruby-b9e4ba8cc1de8ec3dfe4420145f7433c42d7e8df.zip | |
Merge pull request #1132 from monaka/pr-support-NameError.name
Support NameError#name
Diffstat (limited to 'src')
| -rw-r--r-- | src/class.c | 2 | ||||
| -rw-r--r-- | src/error.c | 4 | ||||
| -rw-r--r-- | src/error.h | 1 | ||||
| -rw-r--r-- | src/variable.c | 4 |
4 files changed, 5 insertions, 6 deletions
diff --git a/src/class.c b/src/class.c index 57cfae78f..377503c39 100644 --- a/src/class.c +++ b/src/class.c @@ -979,7 +979,7 @@ mrb_method_search(mrb_state *mrb, struct RClass* c, mrb_sym mid) if (RSTRING_LEN(inspect) > 64) { inspect = mrb_any_to_s(mrb, mrb_obj_value(c)); } - mrb_raisef(mrb, E_NAME_ERROR, "undefined method '%S' for class %S", + mrb_name_error(mrb, mid, "undefined method '%S' for class %S", mrb_sym2str(mrb, mid), inspect); } return m; diff --git a/src/error.c b/src/error.c index 5f1476115..522901ff7 100644 --- a/src/error.c +++ b/src/error.c @@ -306,8 +306,8 @@ mrb_name_error(mrb_state *mrb, mrb_sym id, const char *fmt, ...) argv[0] = mrb_vformat(mrb, fmt, args); va_end(args); - argv[1] = mrb_symbol_value(id); /* ignore now */ - exc = mrb_class_new_instance(mrb, 1, argv, E_NAME_ERROR); + argv[1] = mrb_symbol_value(id); + exc = mrb_class_new_instance(mrb, 2, argv, E_NAME_ERROR); mrb_exc_raise(mrb, exc); } diff --git a/src/error.h b/src/error.h index 83d0938aa..3726cb4c4 100644 --- a/src/error.h +++ b/src/error.h @@ -13,7 +13,6 @@ mrb_value mrb_exc_new3(mrb_state *mrb, struct RClass* c, mrb_value str); mrb_value make_exception(mrb_state *mrb, int argc, mrb_value *argv, int isstr); mrb_value mrb_make_exception(mrb_state *mrb, int argc, mrb_value *argv); mrb_value mrb_format(mrb_state *mrb, const char *format, ...); -void mrb_name_error(mrb_state *mrb, mrb_sym id, const char *fmt, ...); void mrb_exc_print(mrb_state *mrb, struct RObject *exc); #endif /* MRUBY_ERROR_H */ diff --git a/src/variable.c b/src/variable.c index a9570db02..2057b69ef 100644 --- a/src/variable.c +++ b/src/variable.c @@ -691,7 +691,7 @@ mrb_mod_cv_get(mrb_state *mrb, struct RClass * c, mrb_sym sym) } c = c->super; } - mrb_raisef(mrb, E_NAME_ERROR, "uninitialized class variable %S in %S", + mrb_name_error(mrb, sym, "uninitialized class variable %S in %S", mrb_sym2str(mrb, sym), cls); /* not reached */ return mrb_nil_value(); @@ -847,7 +847,7 @@ L_RETRY: } c = c->super; } - mrb_raisef(mrb, E_NAME_ERROR, "uninitialized constant %S", + mrb_name_error(mrb, sym, "uninitialized constant %S", mrb_sym2str(mrb, sym)); /* not reached */ return mrb_nil_value(); |
