There is refactoring which sadly not available from menu. But you can evaluate it manually: (RBGenerateEqualHashRefactoring className: #YourClass variables: #(var1 var2)) execute 2017-02-20 13:46 GMT+01:00 Trussardi Dario Romano < dario.trussardi@tiscali.it>:
Ciao,
i works with Pharo 4.0 environment.
I have a class Product with some instance variable and the = method set to:
= anItem
anItem ifNil:[^false].
anItem class = self class ifFalse:[ ^false].
^ rfrConsegna = anItem rfrConsegna and:[ rfrSubTable = anItem rfrSubTable and:[ rfrDcm = anItem rfrDcm and:[ indexRiga = anItem indexRiga and:[ referenceTime = anItem referenceTime and:[ consumer = anItem consumer
and:[ item = anItem item
and:[ opzioniVoce = anItem opzioniVoce ]]]]]]]
Some of these variables are instances of classes with specific implementation and some variables themselves.
I set the relative hash method to:
hash
^ rfrConsegna hash bitXor:( rfrSubTable hash bitXor: ( rfrDcm hash bitXor: ( indexRiga hash bitXor: ( referenceTime hash bitXor: ( consumer hash bitXor: ( item hash bitXor: ( opzioniVoce hash
)))))))
Now when add some setup instances of class Product to a bag,
the relative inspector report
some aProduct entry but with some Occurences of this set to 0.
aProduct1 3 aProduct2 0 aProduct3 0
Some consideration about it ?
Some references about hash implementations ?
Thanks,
Dario