Project

General

Profile

Feature #7068

ability to deactivate Hash#compare_by_identity()

Added by Suraj Kurapati over 3 years ago. Updated over 2 years ago.

Status:
Rejected
Priority:
Normal
[ruby-core:47697]

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 [ruby-core:47949] Updated by Eric Hodel over 3 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 [ruby-core:49916] Updated by Yusuke Endoh over 3 years ago

  • Assignee set to Yukihiro Matsumoto
  • Priority changed from Normal to 3
  • 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 [ruby-core:60569] Updated by Suraj Kurapati over 2 years 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 [ruby-core:60575] Updated by Benoit Daloze over 2 years ago

  • Status changed from Feedback to Rejected

Also available in: Atom PDF