From d78972e04541675306ca77190c7a0a5291fc2f02 Mon Sep 17 00:00:00 2001 From: John Benediktsson Date: Thu, 6 Jul 2017 11:25:11 -0700 Subject: [PATCH] hash-sets/hashtables: remove wrapped-key, use slot-types for errors. --- basis/hash-sets/identity/identity.factor | 7 ++++++- basis/hash-sets/sequences/sequences.factor | 10 ++++++---- basis/hash-sets/wrapped/wrapped.factor | 3 --- basis/hashtables/identity/identity.factor | 7 ++++++- basis/hashtables/sequences/sequences.factor | 10 ++++++---- basis/hashtables/wrapped/wrapped.factor | 3 --- extra/hash-sets/numbers/numbers.factor | 10 ++++++---- extra/hashtables/numbers/numbers.factor | 10 ++++++---- 8 files changed, 36 insertions(+), 24 deletions(-) diff --git a/basis/hash-sets/identity/identity.factor b/basis/hash-sets/identity/identity.factor index e933fcdd50..afc2fff077 100644 --- a/basis/hash-sets/identity/identity.factor +++ b/basis/hash-sets/identity/identity.factor @@ -4,7 +4,10 @@ USING: accessors hash-sets hash-sets.wrapped kernel parser sequences sets sets.private vocabs.loader ; IN: hash-sets.identity -TUPLE: identity-wrapper < wrapped-key identity-hashcode ; + ( wrapped-key -- identity-wrapper ) dup identity-hashcode identity-wrapper boa ; inline @@ -16,6 +19,8 @@ M: identity-wrapper equal? M: identity-wrapper hashcode* nip identity-hashcode>> ; inline +PRIVATE> + TUPLE: identity-hash-set < wrapped-hash-set ; : ( n -- ihash-set ) diff --git a/basis/hash-sets/sequences/sequences.factor b/basis/hash-sets/sequences/sequences.factor index 55a30f49cb..96324e0a2a 100644 --- a/basis/hash-sets/sequences/sequences.factor +++ b/basis/hash-sets/sequences/sequences.factor @@ -6,9 +6,10 @@ parser sequences sets vocabs.loader ; IN: hash-sets.sequences -ERROR: not-a-sequence object ; + sequence-wrapper @@ -20,13 +21,14 @@ M: sequence-wrapper equal? M: sequence-wrapper hashcode* underlying>> [ sequence-hashcode ] recursive-hashcode ; inline +PRIVATE> + TUPLE: sequence-hash-set < wrapped-hash-set ; : ( n -- shash-set ) sequence-hash-set boa ; inline -M: sequence-hash-set wrap-key - drop dup sequence? [ ] [ not-a-sequence ] if ; +M: sequence-hash-set wrap-key drop ; M: sequence-hash-set clone underlying>> clone sequence-hash-set boa ; inline diff --git a/basis/hash-sets/wrapped/wrapped.factor b/basis/hash-sets/wrapped/wrapped.factor index 0e9c9bbf89..92d724e97e 100644 --- a/basis/hash-sets/wrapped/wrapped.factor +++ b/basis/hash-sets/wrapped/wrapped.factor @@ -6,9 +6,6 @@ vocabs.loader ; IN: hash-sets.wrapped -TUPLE: wrapped-key - { underlying read-only } ; - TUPLE: wrapped-hash-set { underlying hash-set read-only } ; diff --git a/basis/hashtables/identity/identity.factor b/basis/hashtables/identity/identity.factor index 04238f5e27..47ea8bc749 100644 --- a/basis/hashtables/identity/identity.factor +++ b/basis/hashtables/identity/identity.factor @@ -3,7 +3,10 @@ USING: accessors assocs hashtables hashtables.wrapped kernel parser vocabs.loader ; IN: hashtables.identity -TUPLE: identity-wrapper < wrapped-key identity-hashcode ; + ( wrapped-key -- identity-wrapper ) dup identity-hashcode identity-wrapper boa ; inline @@ -15,6 +18,8 @@ M: identity-wrapper equal? M: identity-wrapper hashcode* nip identity-hashcode>> ; inline +PRIVATE> + TUPLE: identity-hashtable < wrapped-hashtable ; : ( n -- ihashtable ) diff --git a/basis/hashtables/sequences/sequences.factor b/basis/hashtables/sequences/sequences.factor index c673d8c696..56c6f6373a 100644 --- a/basis/hashtables/sequences/sequences.factor +++ b/basis/hashtables/sequences/sequences.factor @@ -6,9 +6,10 @@ hashtables.wrapped kernel parser sequences vocabs.loader ; IN: hashtables.sequences -ERROR: not-a-sequence object ; + sequence-wrapper @@ -20,13 +21,14 @@ M: sequence-wrapper equal? M: sequence-wrapper hashcode* underlying>> [ sequence-hashcode ] recursive-hashcode ; inline +PRIVATE> + TUPLE: sequence-hashtable < wrapped-hashtable ; : ( n -- shashtable ) sequence-hashtable boa ; inline -M: sequence-hashtable wrap-key - drop dup sequence? [ ] [ not-a-sequence ] if ; +M: sequence-hashtable wrap-key drop ; M: sequence-hashtable clone underlying>> clone sequence-hashtable boa ; inline diff --git a/basis/hashtables/wrapped/wrapped.factor b/basis/hashtables/wrapped/wrapped.factor index 90fb286560..a4cfde3028 100644 --- a/basis/hashtables/wrapped/wrapped.factor +++ b/basis/hashtables/wrapped/wrapped.factor @@ -5,9 +5,6 @@ USING: accessors arrays assocs hashtables kernel sequences vocabs.loader ; IN: hashtables.wrapped -TUPLE: wrapped-key - { underlying read-only } ; - TUPLE: wrapped-hashtable { underlying hashtable read-only } ; diff --git a/extra/hash-sets/numbers/numbers.factor b/extra/hash-sets/numbers/numbers.factor index f96ace9e33..72b313754f 100644 --- a/extra/hash-sets/numbers/numbers.factor +++ b/extra/hash-sets/numbers/numbers.factor @@ -6,9 +6,10 @@ math.hashcodes parser sequences vocabs.loader ; IN: hash-sets.numbers -ERROR: not-a-number object ; + number-wrapper @@ -20,13 +21,14 @@ M: number-wrapper equal? M: number-wrapper hashcode* nip underlying>> number-hashcode ; inline +PRIVATE> + TUPLE: number-hash-set < wrapped-hash-set ; : ( n -- shash-set ) number-hash-set boa ; inline -M: number-hash-set wrap-key - drop dup number? [ ] [ not-a-number ] if ; +M: number-hash-set wrap-key drop ; M: number-hash-set clone underlying>> clone number-hash-set boa ; inline diff --git a/extra/hashtables/numbers/numbers.factor b/extra/hashtables/numbers/numbers.factor index a6a4fa3235..f2132da207 100644 --- a/extra/hashtables/numbers/numbers.factor +++ b/extra/hashtables/numbers/numbers.factor @@ -7,9 +7,10 @@ vocabs.loader ; IN: hashtables.numbers -ERROR: not-a-number object ; + number-wrapper @@ -21,13 +22,14 @@ M: number-wrapper equal? M: number-wrapper hashcode* nip underlying>> number-hashcode ; inline +PRIVATE> + TUPLE: number-hashtable < wrapped-hashtable ; : ( n -- shashtable ) number-hashtable boa ; inline -M: number-hashtable wrap-key - drop dup number? [ ] [ not-a-number ] if ; +M: number-hashtable wrap-key drop ; M: number-hashtable clone underlying>> clone number-hashtable boa ; inline