Changeset 11773


Ignore:
Timestamp:
04/21/09 17:26:02 (12 years ago)
Author:
ehuelsmann
Message:

Fix MULTIPLE-VALUE-SETQ and (SETF (VALUES ...) ...) when
setting the value of symbol macros.

Fixes MULTIPLE-VALUE-SETQ.5 and MULTIPLE-VALUE-SETQ.8.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/abcl/src/org/armedbear/lisp/setf.lisp

    r11391 r11773  
    6464  (let (temp)
    6565    (cond ((symbolp form)
    66            (let ((new-var (gensym)))
    67              (values nil nil (list new-var)
    68                      `(setq ,form ,new-var) form)))
     66           (multiple-value-bind (expansion expanded)
     67               (macroexpand-1 form environment)
     68             (if expanded
     69                 (get-setf-expansion expansion environment)
     70                 (let ((new-var (gensym)))
     71                   (values nil nil (list new-var)
     72                           `(setq ,form ,new-var) form)))))
    6973          ((setq temp (get (car form) 'setf-inverse))
    7074           (get-setf-method-inverse form `(,temp) nil))
Note: See TracChangeset for help on using the changeset viewer.