From 747059a718b9c6538891a21df69bad9998c51ad0 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Wed, 19 Sep 2018 22:19:55 +0900 Subject: Removed `to_ary` conversion method. --- src/array.c | 27 +++++---------------------- 1 file changed, 5 insertions(+), 22 deletions(-) (limited to 'src/array.c') diff --git a/src/array.c b/src/array.c index 0b039a6ec..c218162bc 100644 --- a/src/array.c +++ b/src/array.c @@ -1058,7 +1058,7 @@ mrb_ary_rindex_m(mrb_state *mrb, mrb_value self) MRB_API mrb_value mrb_ary_splat(mrb_state *mrb, mrb_value v) { - mrb_value a, recv_class; + mrb_value a; if (mrb_array_p(v)) { return v; @@ -1069,22 +1069,11 @@ mrb_ary_splat(mrb_state *mrb, mrb_value v) } a = mrb_funcall(mrb, v, "to_a", 0); - if (mrb_array_p(a)) { - return a; - } - else if (mrb_nil_p(a)) { + if (mrb_nil_p(a)) { return mrb_ary_new_from_values(mrb, 1, &v); } - else { - recv_class = mrb_obj_value(mrb_obj_class(mrb, v)); - mrb_raisef(mrb, E_TYPE_ERROR, "can't convert %S to Array (%S#to_a gives %S)", - recv_class, - recv_class, - mrb_obj_value(mrb_obj_class(mrb, a)) - ); - /* not reached */ - return mrb_undef_value(); - } + mrb_array_type(mrb, a); + return a; } static mrb_value @@ -1121,12 +1110,6 @@ mrb_ary_empty_p(mrb_state *mrb, mrb_value self) return mrb_bool_value(ARY_LEN(a) == 0); } -MRB_API mrb_value -mrb_check_array_type(mrb_state *mrb, mrb_value ary) -{ - return mrb_check_convert_type(mrb, ary, MRB_TT_ARRAY, "Array", "to_ary"); -} - MRB_API mrb_value mrb_ary_entry(mrb_value ary, mrb_int offset) { @@ -1180,7 +1163,7 @@ join_ary(mrb_state *mrb, mrb_value ary, mrb_value sep, mrb_value list) val = tmp; goto str_join; } - tmp = mrb_check_convert_type(mrb, val, MRB_TT_ARRAY, "Array", "to_ary"); + tmp = mrb_check_array_type(mrb, val); if (!mrb_nil_p(tmp)) { val = tmp; goto ary_join; -- cgit v1.2.3 From b4a35344a67812510a34f93f9d6b8400a2183432 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Wed, 19 Sep 2018 22:35:03 +0900 Subject: fixup! Removed `to_ary` conversion method. --- include/mruby/array.h | 2 +- src/array.c | 2 +- src/object.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) (limited to 'src/array.c') diff --git a/include/mruby/array.h b/include/mruby/array.h index dd280cbc0..2457f68f2 100644 --- a/include/mruby/array.h +++ b/include/mruby/array.h @@ -199,7 +199,7 @@ MRB_API void mrb_ary_set(mrb_state *mrb, mrb_value ary, mrb_int n, mrb_value val * @param other The array to replace it with. */ MRB_API void mrb_ary_replace(mrb_state *mrb, mrb_value self, mrb_value other); -MRB_API mrb_value mrb_array_type(mrb_state *mrb, mrb_value self); +MRB_API mrb_value mrb_ensure_array_type(mrb_state *mrb, mrb_value self); MRB_API mrb_value mrb_check_array_type(mrb_state *mrb, mrb_value self); /* diff --git a/src/array.c b/src/array.c index c218162bc..32ee3434e 100644 --- a/src/array.c +++ b/src/array.c @@ -1072,7 +1072,7 @@ mrb_ary_splat(mrb_state *mrb, mrb_value v) if (mrb_nil_p(a)) { return mrb_ary_new_from_values(mrb, 1, &v); } - mrb_array_type(mrb, a); + mrb_ensure_array_type(mrb, a); return a; } diff --git a/src/object.c b/src/object.c index c1ae111aa..a105c62f0 100644 --- a/src/object.c +++ b/src/object.c @@ -607,7 +607,7 @@ mrb_check_string_type(mrb_state *mrb, mrb_value str) } MRB_API mrb_value -mrb_array_type(mrb_state *mrb, mrb_value ary) +mrb_ensure_array_type(mrb_state *mrb, mrb_value ary) { if (!mrb_array_p(ary)) { mrb_raisef(mrb, E_TYPE_ERROR, "%S cannot be converted to Array", -- cgit v1.2.3