diff --git a/core/hashtables/hashtables-tests.factor b/core/hashtables/hashtables-tests.factor index bf512296a1..63c7c506ac 100644 --- a/core/hashtables/hashtables-tests.factor +++ b/core/hashtables/hashtables-tests.factor @@ -1,6 +1,5 @@ -USING: accessors assocs continuations fry hashtables io kernel -make math namespaces prettyprint sequences sequences.private -tools.test vectors ; +USING: accessors assocs continuations fry hashtables kernel make +math namespaces sequences slots.private tools.test ; IN: hashtables.tests { H{ } } [ { } [ dup ] H{ } map>assoc ] unit-test @@ -186,3 +185,16 @@ H{ } "x" set ! Random test case { "A" } [ 100 iota [ dup ] H{ } map>assoc 32 over delete-at "A" 32 pick set-at 32 of ] unit-test + +! Bug 1392, word's hashcode was declared a fixnum +! It fails depending on hash growth, so test in a loop +SYMBOL: +bignum-hashcode+ +-405534154 +bignum-hashcode+ 1 set-slot +{ t } [ + 100 iota [ + drop + H{ } clone + f +bignum-hashcode+ pick set-at + +bignum-hashcode+ +bignum-hashcode+ pick set-at assoc-size 1 = + ] all? +] unit-test diff --git a/core/words/words.factor b/core/words/words.factor index 6e1fb31bac..b37d1e0580 100644 --- a/core/words/words.factor +++ b/core/words/words.factor @@ -263,7 +263,7 @@ M: word forget* ] if ; M: word hashcode* - nip 1 slot { fixnum } declare ; inline foldable + nip 1 slot { integer } declare ; inline M: word literalize ;