A new version of Collections was added to project The Inbox: http://source.squeak.org/inbox/Collections-cbc.812.mcz
==================== Summary ====================
Name: Collections-cbc.812 Author: cbc Time: 15 November 2018, 10:06:05.244237 pm UUID: 1977358c-ec82-5442-8f1d-027d4bc817a3 Ancestors: Collections-eem.811
Make intervals that are #= have the same hash. Also, slight adjustment to #=.
=============== Diff against Collections-eem.811 ===============
Item was changed: ----- Method: Interval>>= (in category 'comparing') ----- = anObject - ^ self == anObject + or: [anObject isInterval + ifFalse: [super = anObject] + ifTrue: + [start = anObject first + and: [step = anObject increment + and: [self last = anObject last]]]]! - ifTrue: [true] - ifFalse: [anObject isInterval - ifTrue: [start = anObject first - and: [step = anObject increment - and: [self last = anObject last]]] - ifFalse: [super = anObject]]!
Item was changed: ----- Method: Interval>>hash (in category 'comparing') ----- hash "Hash is reimplemented because = is implemented."
^(((start hash bitShift: 2) + bitOr: self last hash) - bitOr: stop hash) bitShift: 1) bitOr: self size!
squeak-dev@lists.squeakfoundation.org