summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/hash.c2
-rw-r--r--test/t/hash.rb4
2 files changed, 3 insertions, 3 deletions
diff --git a/src/hash.c b/src/hash.c
index c30a8dec4..3b5d17761 100644
--- a/src/hash.c
+++ b/src/hash.c
@@ -1506,7 +1506,7 @@ mrb_hash_shift(mrb_state *mrb, mrb_value hash)
hash_modify(mrb, hash);
if (h_size(h) == 0) {
- return hash_default(mrb, hash, mrb_nil_value());
+ return mrb_nil_value();
}
else {
mrb_value del_key, del_val;
diff --git a/test/t/hash.rb b/test/t/hash.rb
index a5e51d83b..9bc2668ae 100644
--- a/test/t/hash.rb
+++ b/test/t/hash.rb
@@ -775,7 +775,7 @@ assert('Hash#shift', '15.2.13.4.24') do
assert_equal(0, h.size)
h.default = -456
- assert_equal(-456, h.shift)
+ assert_equal(nil, h.shift)
assert_equal(0, h.size)
h.freeze
@@ -783,8 +783,8 @@ assert('Hash#shift', '15.2.13.4.24') do
end
h = Hash.new{|h, k| [h, k]}
- assert_operator(h.shift, :eql?, [h, nil])
assert_equal(0, h.size)
+ assert_equal(nil, h.shift)
end
# Not ISO specified