]> gitweb.factorcode.org Git - factor.git/commitdiff
hash-sets/hashtables: remove wrapped-key, use slot-types for errors.
authorJohn Benediktsson <mrjbq7@gmail.com>
Thu, 6 Jul 2017 18:25:11 +0000 (11:25 -0700)
committerJohn Benediktsson <mrjbq7@gmail.com>
Thu, 6 Jul 2017 18:25:11 +0000 (11:25 -0700)
basis/hash-sets/identity/identity.factor
basis/hash-sets/sequences/sequences.factor
basis/hash-sets/wrapped/wrapped.factor
basis/hashtables/identity/identity.factor
basis/hashtables/sequences/sequences.factor
basis/hashtables/wrapped/wrapped.factor
extra/hash-sets/numbers/numbers.factor
extra/hashtables/numbers/numbers.factor

index e933fcdd5049a17aa2c5314c79147ceb84e3db3c..afc2fff0771fce5ee1f110427c1b69b9d44bc678 100644 (file)
@@ -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 ;
+<PRIVATE
+
+TUPLE: identity-wrapper
+    { underlying read-only } identity-hashcode ;
 
 : <identity-wrapper> ( 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 ;
 
 : <identity-hash-set> ( n -- ihash-set )
index 55a30f49cb49d3cdd89bf52ae95a63e91ce5009c..96324e0a2a816455c903288684736929139c425d 100644 (file)
@@ -6,9 +6,10 @@ parser sequences sets vocabs.loader ;
 
 IN: hash-sets.sequences
 
-ERROR: not-a-sequence object ;
+<PRIVATE
 
-TUPLE: sequence-wrapper < wrapped-key ;
+TUPLE: sequence-wrapper
+    { underlying sequence read-only } ;
 
 C: <sequence-wrapper> 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 ;
 
 : <sequence-hash-set> ( n -- shash-set )
     <hash-set> sequence-hash-set boa ; inline
 
-M: sequence-hash-set wrap-key
-    drop dup sequence? [ <sequence-wrapper> ] [ not-a-sequence ] if ;
+M: sequence-hash-set wrap-key drop <sequence-wrapper> ;
 
 M: sequence-hash-set clone
     underlying>> clone sequence-hash-set boa ; inline
index 0e9c9bbf89dc5aeb1b922e9ed147bc5deeee96b9..92d724e97ec2a862b191656a5703c1f15a88cbed 100644 (file)
@@ -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 } ;
 
index 04238f5e2742dadbe10fb62a5ba12fd4f9e00b95..47ea8bc749355b018e6d30f00e52ac041667b6c1 100644 (file)
@@ -3,7 +3,10 @@ USING: accessors assocs hashtables hashtables.wrapped kernel
 parser vocabs.loader ;
 IN: hashtables.identity
 
-TUPLE: identity-wrapper < wrapped-key identity-hashcode ;
+<PRIVATE
+
+TUPLE: identity-wrapper
+    { underlying read-only } identity-hashcode ;
 
 : <identity-wrapper> ( 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 ;
 
 : <identity-hashtable> ( n -- ihashtable )
index c673d8c696afd0057d376ff71446043d258f6a51..56c6f6373a8d1876fc48e644b4b8966cc66c6c35 100644 (file)
@@ -6,9 +6,10 @@ hashtables.wrapped kernel parser sequences vocabs.loader ;
 
 IN: hashtables.sequences
 
-ERROR: not-a-sequence object ;
+<PRIVATE
 
-TUPLE: sequence-wrapper < wrapped-key ;
+TUPLE: sequence-wrapper
+    { underlying sequence read-only } ;
 
 C: <sequence-wrapper> 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 ;
 
 : <sequence-hashtable> ( n -- shashtable )
     <hashtable> sequence-hashtable boa ; inline
 
-M: sequence-hashtable wrap-key
-    drop dup sequence? [ <sequence-wrapper> ] [ not-a-sequence ] if ;
+M: sequence-hashtable wrap-key drop <sequence-wrapper> ;
 
 M: sequence-hashtable clone
     underlying>> clone sequence-hashtable boa ; inline
index 90fb2865601961eff81170fc4e399b6ba53abdd7..a4cfde302812070461504a42907c0eb1ad0994fe 100644 (file)
@@ -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 } ;
 
index f96ace9e3354939ca237c82e3239828d5f486834..72b313754f26566c2ce1ab83cce8658064f40e31 100644 (file)
@@ -6,9 +6,10 @@ math.hashcodes parser sequences vocabs.loader ;
 
 IN: hash-sets.numbers
 
-ERROR: not-a-number object ;
+<PRIVATE
 
-TUPLE: number-wrapper < wrapped-key ;
+TUPLE: number-wrapper
+    { underlying number read-only } ;
 
 C: <number-wrapper> 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 ;
 
 : <number-hash-set> ( n -- shash-set )
     <hash-set> number-hash-set boa ; inline
 
-M: number-hash-set wrap-key
-    drop dup number? [ <number-wrapper> ] [ not-a-number ] if ;
+M: number-hash-set wrap-key drop <number-wrapper> ;
 
 M: number-hash-set clone
     underlying>> clone number-hash-set boa ; inline
index a6a4fa3235652db564588df96c174af1fc2edcd6..f2132da207e2cf9eadebfb873f40203b971a9aa4 100644 (file)
@@ -7,9 +7,10 @@ vocabs.loader ;
 
 IN: hashtables.numbers
 
-ERROR: not-a-number object ;
+<PRIVATE
 
-TUPLE: number-wrapper < wrapped-key ;
+TUPLE: number-wrapper
+    { underlying number read-only } ;
 
 C: <number-wrapper> 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 ;
 
 : <number-hashtable> ( n -- shashtable )
     <hashtable> number-hashtable boa ; inline
 
-M: number-hashtable wrap-key
-    drop dup number? [ <number-wrapper> ] [ not-a-number ] if ;
+M: number-hashtable wrap-key drop <number-wrapper> ;
 
 M: number-hashtable clone
     underlying>> clone number-hashtable boa ; inline