Return the reader-form from SETF expansion.
authorKen Harris <kengruven@gmail.com>
Fri, 14 Jun 2013 19:25:21 +0000 (12:25 -0700)
committerKen Harris <kengruven@gmail.com>
Fri, 14 Jun 2013 19:25:21 +0000 (12:25 -0700)
src/boot.lisp
src/list.lisp

index d7141f6..f5fd74e 100644 (file)
     ((null (cddr pairs))
      (let ((place (!macroexpand-1 (first pairs)))
            (value (second pairs)))
-       (multiple-value-bind (vars vals store-vars writer-form)
+       (multiple-value-bind (vars vals store-vars writer-form reader-form)
            (get-setf-expansion place)
          ;; TODO: Optimize the expansion a little bit to avoid let*
          ;; or multiple-value-bind when unnecesary.
          `(let* ,(mapcar #'list vars vals)
             (multiple-value-bind ,store-vars
                 ,value
-              ,writer-form)))))
+              ,writer-form
+              ,reader-form)))))
     (t
      `(progn
         ,@(do ((pairs pairs (cddr pairs))
index c0370b7..d39a6e6 100644 (file)
             (list x)
             (list new-value)
             `(progn (rplacd ,cons ,new-value) ,new-value)
-            `(car ,cons))))
+            `(cdr ,cons))))
 
 
 ;; The NCONC function is based on the SBCL's one.