Hi Bert,

On Thu, Nov 15, 2018 at 4:38 PM Bert Freudenberg <bert@freudenbergs.de> wrote:
Somehow I missed Eliot's version, but unsurprisingly he had exactly the same idea (use "last" not "stop" for hash). I'd still think bitXor: is preferable to bitOr, that is the standard way in almost all hash methods. But ...

BUT: I forgot about the super fallback in #=. That makes this discussion pretty much moot, because since

#(1 2 3) = (1 to: 3) "true"

is true, this must also be true:

#(1 2 3) hash = (1 to: 3) hash  "must be true"

So the only proper fix IMHO is to remove #hash from Interval (or replace it with ^super hash and a proper comment)


We discussed this a couple of weeks ago.  There is no need for 
    #(1 2 3) = (1 to: 3) 
to be true. 
    #(1 2 3) = #[1 2 3]
isn’t true.  And we have hasEqualElements:.  So a more coherent approach is for the hack that makes intervals equal to arrays be discarded, and the hashes kept distinct.
 

- Bert -




--
_,,,^..^,,,_
best, Eliot