Fix macro expansion time confusion in with-index-hash
authorUtz-Uwe Haus <lisp@uuhaus.de>
Tue, 22 Jun 2010 08:45:00 +0000 (22 10:45 +0200)
committerUtz-Uwe Haus <lisp@uuhaus.de>
Tue, 22 Jun 2010 08:45:00 +0000 (22 10:45 +0200)
Signed-off-by: Utz-Uwe Haus <lisp@uuhaus.de>
satwrap.lisp

index f7e11aa..bc86495 100644 (file)
@@ -212,7 +212,7 @@ Returns a list of literals fixed, sign according to phase.")
      (locally
         ,@body)))
 
-(defmacro with-index-hash ((mapping &key (test 'cl:eq)) objects &body body)
+(defmacro with-index-hash ((mapping &key (test 'eq)) objects &body body)
   "Execute BODY while binding MAPPING to a hash-table (with predicate
 TEST, defaults to #'cl:eq) mapping the elements of the sequence OBJECTS
 to integer 1..[length objects].
@@ -220,12 +220,12 @@ Typically used to map objects to variables inside WITH-SAT-SOLVER."
   (let ((o (gensym "objects")))
     `(let* ((,o ,objects)
            (,mapping (etypecase ,o
-                      (list (loop :with ht := (make-hash-table :test ,test)
+                      (list (loop :with ht := (make-hash-table :test #',test)
                                :for x :in ,o
                                :for num :of-type fixnum :from 1
                                :do (setf (gethash x ht) num)
                                :finally (return ht)))
-                      (vector (loop :with ht := (make-hash-table :test ,test)
+                      (vector (loop :with ht := (make-hash-table :test #',test)
                                  :for x :across ,o
                                  :for num :of-type fixnum :from 1
                                  :do (setf (gethash x ht) num)