From d6dc9caa022db9fcadb79b1b9d8e673eeb066917 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Wed, 14 Dec 2022 07:39:10 +0900 Subject: [PATCH] mruby-hash-ext/hash.rb: make transform_keys! to keep old keys ```ruby h={1=>2,2=>3} h.transform_keys!{_1.succ} ``` used to make `h` to `{2=>2}` (duplicated keys were squashed), but now makes it `{2=>2,3=>3}`. --- mrbgems/mruby-hash-ext/mrblib/hash.rb | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/mrbgems/mruby-hash-ext/mrblib/hash.rb b/mrbgems/mruby-hash-ext/mrblib/hash.rb index 6fec1c17d..5a8b53778 100644 --- a/mrbgems/mruby-hash-ext/mrblib/hash.rb +++ b/mrbgems/mruby-hash-ext/mrblib/hash.rb @@ -428,12 +428,8 @@ class Hash # def transform_keys!(&block) return to_enum :transform_keys! unless block - self.keys.each do |k| - value = self[k] - self.__delete(k) - k = block.call(k) if block - self[k] = value - end + hash = self.transform_keys(&block) + self.replace(hash) self end ##