[ruby-core:123575] [Ruby Feature#21653] Unify Hash methods and preserving default/default_proc
From:
"andrykonchin (Andrew Konchin) via ruby-core" <ruby-core@...>
Date:
2025-10-28 21:36:27 UTC
List:
ruby-core #123575
Issue #21653 has been reported by andrykonchin (Andrew Konchin).
----------------------------------------
Feature #21653: Unify Hash methods and preserving default/default_proc
https://bugs.ruby-lang.org/issues/21653
* Author: andrykonchin (Andrew Konchin)
* Status: Open
----------------------------------------
All the Hash methods that return a new instance of Hash don't preserve the `default` and `default_proc` properties except `#compact` and `#merge`:
```ruby
h = {a: 1}
h.default = 0
h.compact[:f] == 0 # => true
h.merge(b: 2)[:f] == 0 # => true
```
Propose to unify Hash methods select/slice/reject/except/compact/merge/transform_values/transform_keys/invert/to_h/Hash[] and to preserve or not preserve default/default_proc altogether.
--
https://bugs.ruby-lang.org/
______________________________________________
ruby-core mailing list -- ruby-core@ml.ruby-lang.org
To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/