
Issue #19448 has been updated by Hanmac (Hans Mackowiak). That's is known limitation when using Hash default value Also your problem is that `<<` would alter the same object you put into as default object meaning: ```ruby h = Hash.new(Set.new) h[:a] << 1 h[:b] << 2 p h[:c] #=> Set[1,2] ``` ---------------------------------------- Bug #19448: [Hash] Using Set as default value https://bugs.ruby-lang.org/issues/19448#change-101921 * Author: bobanj (Boban Jovanoski) * Status: Rejected * Priority: Normal * ruby -v: ruby 3.1.3p185 (2022-11-24 revision 1a6b16756e) [x86_64-darwin22] * Backport: 2.7: UNKNOWN, 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN ---------------------------------------- When using a hash and set is used as a default value, the keys method for the hash does not return expected values. A workaround for this is provided in the attachment. ---Files-------------------------------- bug.rb (382 Bytes) -- https://bugs.ruby-lang.org/