Hi Sean.

I did not know about quality of generated hash function.��
But if I remember correctly the same code is generated for java using Eclipse or Idea. So it should be good enough.

2017-10-02 16:37 GMT+02:00 Sean P. DeNigris <sean@clipperadams.com>:
Denis Kudriashov wrote
> I just use RBGenerateEqualHashRefactoring for this:
>
> r := RBGenerateEqualHashRefactoring className: MyClass variables: #(vars
> which should be used in equal and hash).
> r execute

That is sooooo cool! I shudder to think how many times I implemented just
that by hand!!

Two questions/comments about the generated code:
1. #=
�� �� �� �� ...
�� �� �� �� self class = anObject class "should compare #species instead?"
�� �� �� �� �� �� �� �� ifFalse: [ ^ false ].
�� �� �� �� ...
Typically, I've seen #species instead of #class in the guard statement.
Should we change it to that?


2. #hash
�� �� �� �� ^ var1 hash bitXor: (var2 hash bitXor: var3 hash)
Is this implementation always safe? It's what I usually hand roll based on
what I've seen, but Andres Valloud wrote a whole (large) book on hashing, so
I've always wondered if I was missing something���



-----
Cheers,
Sean
--
Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html