summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2018-09-19 22:53:48 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2018-09-19 22:53:48 +0900
commitcb85fa6787ea9467f81be41570a36b475b7ef061 (patch)
tree0f75fd9dbe38a0700dc47963d0900aaafc5ea031 /src
parentb4a35344a67812510a34f93f9d6b8400a2183432 (diff)
downloadmruby-cb85fa6787ea9467f81be41570a36b475b7ef061.tar.gz
mruby-cb85fa6787ea9467f81be41570a36b475b7ef061.zip
Removed `to_hash` conversion method.
Diffstat (limited to 'src')
-rw-r--r--src/class.c15
-rw-r--r--src/hash.c28
-rw-r--r--src/object.c17
3 files changed, 19 insertions, 41 deletions
diff --git a/src/class.c b/src/class.c
index 6187d5420..b5a492d8f 100644
--- a/src/class.c
+++ b/src/class.c
@@ -492,18 +492,6 @@ mrb_notimplement_m(mrb_state *mrb, mrb_value self)
return mrb_nil_value();
}
-static mrb_value
-check_type(mrb_state *mrb, mrb_value val, enum mrb_vtype t, const char *c, const char *m)
-{
- mrb_value tmp;
-
- tmp = mrb_check_convert_type(mrb, val, t, c, m);
- if (mrb_nil_p(tmp)) {
- mrb_raisef(mrb, E_TYPE_ERROR, "expected %S", mrb_str_new_cstr(mrb, c));
- }
- return tmp;
-}
-
#define CHECK_TYPE(mrb, val, t, c) do { \
if (mrb_type(val) != (t)) {\
mrb_raisef(mrb, E_TYPE_ERROR, "expected %S", mrb_str_new_lit(mrb, c));\
@@ -527,7 +515,8 @@ to_ary(mrb_state *mrb, mrb_value val)
static mrb_value
to_hash(mrb_state *mrb, mrb_value val)
{
- return check_type(mrb, val, MRB_TT_HASH, "Hash", "to_hash");
+ CHECK_TYPE(mrb, val, MRB_TT_HASH, "Hash");
+ return val;
}
#define to_sym(mrb, ss) mrb_obj_to_sym(mrb, ss)
diff --git a/src/hash.c b/src/hash.c
index f6b61f4e1..734f6d9bd 100644
--- a/src/hash.c
+++ b/src/hash.c
@@ -320,18 +320,6 @@ mrb_hash_set(mrb_state *mrb, mrb_value hash, mrb_value key, mrb_value val)
return;
}
-MRB_API mrb_value
-mrb_ensure_hash_type(mrb_state *mrb, mrb_value hash)
-{
- return mrb_convert_type(mrb, hash, MRB_TT_HASH, "Hash", "to_hash");
-}
-
-MRB_API mrb_value
-mrb_check_hash_type(mrb_state *mrb, mrb_value hash)
-{
- return mrb_check_convert_type(mrb, hash, MRB_TT_HASH, "Hash", "to_hash");
-}
-
MRB_API khash_t(ht)*
mrb_hash_tbl(mrb_state *mrb, mrb_value hash)
{
@@ -787,20 +775,6 @@ mrb_hash_empty_m(mrb_state *mrb, mrb_value self)
return mrb_false_value();
}
-/* 15.2.13.4.29 (x)*/
-/*
- * call-seq:
- * hsh.to_hash => hsh
- *
- * Returns +self+.
- */
-
-static mrb_value
-mrb_hash_to_hash(mrb_state *mrb, mrb_value hash)
-{
- return hash;
-}
-
/* 15.2.13.4.19 */
/*
* call-seq:
@@ -1022,6 +996,4 @@ mrb_init_hash(mrb_state *mrb)
mrb_define_method(mrb, h, "store", mrb_hash_aset, MRB_ARGS_REQ(2)); /* 15.2.13.4.26 */
mrb_define_method(mrb, h, "value?", mrb_hash_has_value, MRB_ARGS_REQ(1)); /* 15.2.13.4.27 */
mrb_define_method(mrb, h, "values", mrb_hash_values, MRB_ARGS_NONE()); /* 15.2.13.4.28 */
-
- mrb_define_method(mrb, h, "to_hash", mrb_hash_to_hash, MRB_ARGS_NONE()); /* 15.2.13.4.29 (x)*/
}
diff --git a/src/object.c b/src/object.c
index a105c62f0..66dfa0f97 100644
--- a/src/object.c
+++ b/src/object.c
@@ -624,6 +624,23 @@ mrb_check_array_type(mrb_state *mrb, mrb_value ary)
}
MRB_API mrb_value
+mrb_ensure_hash_type(mrb_state *mrb, mrb_value hash)
+{
+ if (!mrb_hash_p(hash)) {
+ mrb_raisef(mrb, E_TYPE_ERROR, "%S cannot be converted to Hash",
+ inspect_type(mrb, hash));
+ }
+ return hash;
+}
+
+MRB_API mrb_value
+mrb_check_hash_type(mrb_state *mrb, mrb_value hash)
+{
+ if (!mrb_hash_p(hash)) return mrb_nil_value();
+ return hash;
+}
+
+MRB_API mrb_value
mrb_inspect(mrb_state *mrb, mrb_value obj)
{
return mrb_obj_as_string(mrb, mrb_funcall(mrb, obj, "inspect", 0));