From 31e0382723bfb35cffe3ca485dd0577668cafa07 Mon Sep 17 00:00:00 2001 From: Kenichi Kamiya Date: Sun, 28 Mar 2021 09:14:57 +0900 Subject: Keep non evaluated keys in `Hash#transform_keys!` [Bug #17735] --- test/ruby/test_hash.rb | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'test/ruby/test_hash.rb') diff --git a/test/ruby/test_hash.rb b/test/ruby/test_hash.rb index bd94b408bb..23df2410d7 100644 --- a/test/ruby/test_hash.rb +++ b/test/ruby/test_hash.rb @@ -1765,6 +1765,10 @@ class TestHash < Test::Unit::TestCase x.transform_keys! {|k| -k } assert_equal([-1, :a, 1, :b], x.flatten) + x = @cls[a: 1, b: 2, c: 3] + x.transform_keys! { |k| k == :b && break } + assert_equal({false => 1, b: 2, c: 3}, x) + x = @cls[true => :a, false => :b] x.transform_keys! {|k| !k } assert_equal([false, :a, true, :b], x.flatten) @@ -1800,6 +1804,10 @@ class TestHash < Test::Unit::TestCase assert_equal([1, 4, 9], y.values_at(:a, :b, :c)) assert_same(x, y) + x = @cls[a: 1, b: 2, c: 3] + x.transform_values! { |v| v == 2 && break } + assert_equal({a: false, b: 2, c: 3}, x) + x = @cls[a: 1, b: 2, c: 3] y = x.transform_values!.with_index {|v, i| "#{v}.#{i}" } assert_equal(%w(1.0 2.1 3.2), y.values_at(:a, :b, :c)) -- cgit v1.2.3