Actions
Bug #12027
closedHash descendants are ignoring custom to_hash method
Description
I'm not sure it is not intended, but feels really strange:
class A
def to_hash
{foo: 'bar'}
end
end
class B < Hash
def to_hash
{foo: 'bar'}
end
end
a = A.new
b = B.new
p({**a}) # => {foo: 'bar'}
p({**b}) # => {} -- ooops. Seems "internal" hash state is used
# therefore:
b['test'] = 1
p({**b}) # => wrong argument type String (expected Symbol) (TypeError)
What am I missing here?
Actions
Like0
Like0