Hi.
I'm slowly (very) working towards crating a usable test for validating for classes where #= is true, #hash will also be true.
Last week, the Date issue showed up. This week? Intervals: (0 to: 1) = (0 to: 5/3). "true" (0 to: 1) hash = (0 to: 5/3) hash. "false" CharacterBlock: | cb1 cb2 | cb1 := (CharacterBlock new stringIndex: 5 text: 'StandardText' asText topLeft: (100@100) extent: (20@20)). cb2 := (CharacterBlock new stringIndex: 5 text: 'StandardText' asText topLeft: (200@200) extent: (20@20)). cb1 = cb2. "true" cb1 hash = cb2 hash. "false"
These were found by comparing a random sampling of instances of classes that implement #= or #hash (or both), and finding which have these deviant properties. The hard part is figuring out instances that are going to have issues - Date didn't show up in my prototype scanning. Also most classes don't have instances floating around to compare.
Thanks, -cbc