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)