If the collection implements = using the objects it holds then you need to consider at least some of them in the hash calculation. I can't conceive a hash calculation for this case independent of the contents (well, ��just hardcode a number but this will lead to always collide if used as a key in a hashed collection).

I'm with Levente here, I think the hash implementation is reasonable. And I wouldn't use a mutable object as key in a hashed collection.

On Fri, Oct 9, 2015 at 11:07 AM, Esteban Lorenzano <estebanlm@gmail.com> wrote:
but that���s an error, I think.
a collection has to have always same hash��� no matter its size (because is not an array) and no matter his elements.


> On 09 Oct 2015, at 15:21, Levente Uzonyi <leves@elte.hu> wrote:
>
> 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