You simply don't modify _objects_ which are used as keys in hashed collections. Or if you do so, you'll have to deal with the consequences yourself.

Levente

On Fri, 9 Oct 2015, Esteban Lorenzano wrote:

Hi,

Can anyone explain me how this is correct?

Collection>>#hash
        "Answer an integer hash value for the receiver such that,
          -- the hash value of an unchanged object is constant over time, and
          -- two equal objects have equal hash values"

        | hash |

        hash := self species hash.
        self size <= 10 ifTrue:
                [self do: [:elem | hash := hash bitXor: elem hash]].
        ^hash bitXor: self size hash


I mean… a hash that changes when I add elements to the collection… how can this 
work?

Esteban

Reply via email to