A use case in the system is #stonPostReferenceResolution for Dictionary and 
Set. You could have a look at that (it is an edge case, but still).

> On 30 Aug 2022, at 19:00, [email protected] wrote:
> 
> From Pharo Discord:
> 
> IIUC when I change the comparison behavior of a class (i.e. reimplement #= 
> and #hash), sets containing those objects start acting oddly e.g. happily 
> storing duplicates of equal objects and failing to find objects they contain. 
> A solution seems to be Set allSubInstances do: #rehash.
> 
> Is my understanding correct? If so, I find it odd that I've been using and 
> researching Smalltalk for well over a decade and I never remember 
> reading/hearing about this. I wonder if it can be baked into the IDE somehow 
> e.g. via a critic...
> 
> And stephan responded:
> 
> The mailing list posts about that I remember were at the time where the 
> number of object bits used for the hash were increased.
> 
> Following up on his clue, I found this old post, which seems to confirm my 
> suspicion. This seems like a serious trap for users to fall into (I’m having 
> flashbacks to my C++ days lol). So, can/should we somehow handle this in the 
> IDE? Something like a refactoring (that has a confirmation window) that gives 
> you the choice to rehash image collections when redefining these methods?
> 
> In a 1GB image, `Set allSubInstances do: #rehash` is almost instantaneous and 
> `Dictionary allSubInstances do: #rehash` takes several seconds.
> 

Reply via email to