Get ABCL to shut up about unused gensyms
    
        | author | 
        Steve Losh <steve@stevelosh.com> | 
    
    
        | date | 
        Sun, 17 Jun 2018 16:28:57 -0700 | 
    
    
    
        | parents | 
        de9d10a9b4b5 
 | 
    
    
        | children | 
        a0c69729ade3
 | 
    
    
        | branches/tags | 
        (none) | 
    
    
        | files | 
        src/hash-sets.lisp  | 
    
Changes
    
--- a/src/hash-sets.lisp	Sun Jun 17 16:20:05 2018 -0700
+++ b/src/hash-sets.lisp	Sun Jun 17 16:28:57 2018 -0700
@@ -2,7 +2,7 @@
 
 (defstruct (hash-set (:constructor make-hash-set%)
                      (:copier nil))
-  (storage (error "Required") :type hash-table :read-only t))
+  (storage (error "Required") :type hash-table))
 
 (defmethod print-object ((hset hash-set) stream)
   (print-unreadable-object (hset stream :type t :identity t)
@@ -37,15 +37,15 @@
 (defmacro define-hset-op (name arglist &body body)
   (let* ((has-docstring (stringp (first body)))
          (docstring (if has-docstring
-                     (first body)
-                     ""))
+                      (first body)
+                      ""))
          (body (if has-docstring
                  (rest body)
                  body)))
     `(defun ,name ,arglist
-      ,docstring
-      (with-slots (storage) ,(first arglist)
-       ,@body))))
+       ,docstring
+       (symbol-macrolet ((storage (hash-set-storage ,(first arglist))))
+        ,@body))))
 
 
 (define-hset-op hset-empty-p (hset)