Feature #7068

ability to deactivate Hash#compare_by_identity()

Added by Suraj Kurapati over 2 years ago. Updated over 1 year ago.

[ruby-core:47697]
Status:Rejected
Priority:Low
Assignee:Yukihiro Matsumoto

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.

History

#1 Updated by Eric Hodel over 2 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

#2 Updated by Yusuke Endoh over 2 years ago

  • Assignee set to Yukihiro Matsumoto
  • Priority changed from Normal to Low
  • Target version set to next minor

Please make the proposal complete: your use case and the corner case behavior (Eric said).

Yusuke Endoh mame@tsg.ne.jp

#3 Updated by Suraj Kurapati over 1 year ago

Eric Hodel wrote:

=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

Good point. This feature would violate the invariant of hash keys being unique. You may reject this feature request. Thanks.

#4 Updated by Benoit Daloze over 1 year ago

  • Status changed from Feedback to Rejected

Also available in: Atom PDF