[ruby-core:60569] [ruby-trunk - Feature #7068] ability to deactivate Hash#compare_by_identity()

From: sunaku@...
Date: 2014-02-08 01:39:38 UTC
List: ruby-core #60569
Issue #7068 has been updated by Suraj Kurapati.


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.

----------------------------------------
Feature #7068: ability to deactivate Hash#compare_by_identity()
https://bugs.ruby-lang.org/issues/7068#change-45019

* Author: Suraj Kurapati
* Status: Feedback
* Priority: Low
* Assignee: Yukihiro Matsumoto
* Category: 
* Target version: next minor
----------------------------------------
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.



-- 
http://bugs.ruby-lang.org/

In This Thread