summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2014-02-14 17:04:21 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2014-02-14 17:04:21 +0900
commit007ed07e77be90ec2b5f7e5043dd611540e9f80d (patch)
tree73e27d754b86f4cf74d71ea782dc8fbf7a0dc974
parentba8a8e75c777d29bdbdcea56513d188949f131ec (diff)
parent7ab0506795ca8a758043115f88cd8288389835c4 (diff)
downloadmruby-007ed07e77be90ec2b5f7e5043dd611540e9f80d.tar.gz
mruby-007ed07e77be90ec2b5f7e5043dd611540e9f80d.zip
Merge pull request #1708 from Fleurer/cleanup-warning-hash-dup
cleanup warnings in hash.c
-rw-r--r--src/hash.c1
-rw-r--r--test/t/hash.rb7
2 files changed, 8 insertions, 0 deletions
diff --git a/src/hash.c b/src/hash.c
index d8970116d..566728253 100644
--- a/src/hash.c
+++ b/src/hash.c
@@ -987,6 +987,7 @@ mrb_init_hash(mrb_state *mrb)
mrb_define_method(mrb, h, "member?", mrb_hash_has_key, MRB_ARGS_REQ(1)); /* 15.2.13.4.21 */
mrb_define_method(mrb, h, "replace", mrb_hash_replace, MRB_ARGS_REQ(1)); /* 15.2.13.4.23 */
mrb_define_method(mrb, h, "shift", mrb_hash_shift, MRB_ARGS_NONE()); /* 15.2.13.4.24 */
+ mrb_define_method(mrb, h, "dup", mrb_hash_dup, MRB_ARGS_NONE());
mrb_define_method(mrb, h, "size", mrb_hash_size_m, MRB_ARGS_NONE()); /* 15.2.13.4.25 */
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 */
diff --git a/test/t/hash.rb b/test/t/hash.rb
index 39f9ae9d8..837fe0216 100644
--- a/test/t/hash.rb
+++ b/test/t/hash.rb
@@ -34,6 +34,13 @@ assert('Hash#clear', '15.2.13.4.4') do
assert_equal({ }, a)
end
+assert('Hash#dup') do
+ a = { 'a' => 1 }
+ b = a.dup
+ a['a'] = 2
+ assert_equal(b, {'a' => 1})
+end
+
assert('Hash#default', '15.2.13.4.5') do
a = Hash.new
b = Hash.new('abc')