From: lucasbuchala@... Date: 2017-08-31T16:45:29+00:00 Subject: [ruby-core:82592] [Ruby trunk Bug#13855] Hash#compact! returns nil if the hash is empty Issue #13855 has been updated by lucasbuchala (Lucas Buchala). Rather than a bug, I wonder if this is just a documentation omission. In case of a documentation omission, I created a PR: https://github.com/ruby/ruby/pull/1692 ---------------------------------------- Bug #13855: Hash#compact! returns nil if the hash is empty https://bugs.ruby-lang.org/issues/13855#change-66413 * Author: elandesign (Paul Smith) * Status: Open * Priority: Normal * Assignee: * Target version: * ruby -v: ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-darwin16] * Backport: 2.2: UNKNOWN, 2.3: UNKNOWN, 2.4: UNKNOWN ---------------------------------------- This behaviour feels like a bug to me. From the documentation (with my emphasis): > compact! ��� hsh > Removes all nil values from the hash. **Returns the hash**. However if the hash contains no keys, the method returns nil. ~~~ irb(main):001:0> {}.compact! => nil # For Comparison irb(main):002:0> { foo: nil }.compact! => {} irb(main):003:0> {}.compact => {} irb(main):004:0> { foo: nil }.compact => {} ~~~ -- https://bugs.ruby-lang.org/ Unsubscribe: