diff --git a/core/combinators/combinators.factor b/core/combinators/combinators.factor index 1a76bcc70e..b6e87f45eb 100644 --- a/core/combinators/combinators.factor +++ b/core/combinators/combinators.factor @@ -201,6 +201,11 @@ M: reversed hashcode* [ sequence-hashcode ] recursive-hashcode ; M: slice hashcode* [ sequence-hashcode ] recursive-hashcode ; +M: iota hashcode* + over 0 <= [ 2drop 0 ] [ + nip length 0 swap [ sequence-hashcode-step ] each-integer + ] if ; + M: hashtable hashcode* [ dup assoc-size 1 eq? diff --git a/core/layouts/layouts.factor b/core/layouts/layouts.factor index a7bfbb7c2d..e6e238eefd 100644 --- a/core/layouts/layouts.factor +++ b/core/layouts/layouts.factor @@ -91,17 +91,4 @@ M: real >integer dup most-negative-fixnum most-positive-fixnum between? [ >fixnum ] [ >bignum ] if ; inline -! we put this here so that it can use the references to -! most-positive-fixnum otherwise would be in combinatrs -M: iota hashcode* - over 0 <= [ 2drop 0 ] [ - nip length [ - 0 most-positive-fixnum clamp integer>fixnum - 0 swap [ sequence-hashcode-step ] each-integer - ] [ - most-positive-fixnum swap - [ sequence-hashcode-step ] (each-integer) - ] bi - ] if ; - UNION: immediate fixnum POSTPONE: f ;