> > You did not fix everything that was fixed in Squeak. > Example: > > rect1 := 10@10 corner: 40@40. > empty2 := 30@30 corner: 20@20. > (rect1 intersects: empty2) - > true
I think that we should not use intersect: anymore because it does not make sense. > What I see is that you provided intersect:ifNone: to avoid producing empty > rectangle in the first place - or to produce explicitely empty 0@0 extent: > 0@0. > > But > - not all intersect: senders have been changed, Indeed we should probably continue > - some senders have been changed questionably (allowedArea in > IdentifierChooserMorph is re-implementing RealEstateAgent class > maximumUsableArea differently) > - I don't know if intersect: was the sole source of empty rectangles… No around 160 layoutFrame and others > Until all producers have been eradicated, the empty invariant still exists, > and Rectangle methods must still be guarded against empty rectangle edge > cases. > Right now, it is not enforced everywhere (see intersects: case above). > > Right now you're in the middle of the bridge, but that's OK if the emptiness > invariant eradication is still planned, it's just a temporary transition.. If I remember correctly the goal is to never have never width.