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. >
