From: zverok.offline@... Date: 2016-01-27T00:20:39+00:00 Subject: [ruby-core:73506] [Ruby trunk - Bug #12027] [Open] Hash descendants are ignoring custom to_hash method Issue #12027 has been reported by Victor Shepelev. ---------------------------------------- Bug #12027: Hash descendants are ignoring custom to_hash method https://bugs.ruby-lang.org/issues/12027 * Author: Victor Shepelev * Status: Open * Priority: Normal * Assignee: * ruby -v: * Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN ---------------------------------------- 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? -- https://bugs.ruby-lang.org/ Unsubscribe: