Feature #7068
closedability to deactivate Hash#compare_by_identity()
Description
Hello,
I am using ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux].
There is no way to deactivate a Hash's compare by identity behavior:
h = Hash.new
h.compare_by_identity
h.compare_by_identity? #=> true
h.compare_by_identity
h.compare_by_identity? #=> still true
I want the ability to deactivate that behavior afterwards, like this:
h.compare_by_identity = false
Thanks for your consideration.
Updated by drbrain (Eric Hodel) about 12 years ago
- Status changed from Open to Feedback
=begin
h = {}
h.compare_by_identity = true
h['a'] = 1
h['a'] = 2
h.compare_by_identity = false
What value is returned for (({h['a']}))?
=end
Updated by mame (Yusuke Endoh) about 12 years ago
- Assignee set to matz (Yukihiro Matsumoto)
- Priority changed from Normal to 3
- Target version set to 2.6
Please make the proposal complete: your use case and the corner case behavior (Eric said).
--
Yusuke Endoh mame@tsg.ne.jp
Updated by sunaku (Suraj Kurapati) almost 11 years ago
Eric Hodel wrote:
=begin
h = {}
h.compare_by_identity = true
h['a'] = 1
h['a'] = 2
h.compare_by_identity = falseWhat value is returned for (({h['a']}))?
=end
Good point. This feature would violate the invariant of hash keys being unique. You may reject this feature request. Thanks.
Updated by Eregon (Benoit Daloze) almost 11 years ago
- Status changed from Feedback to Rejected