[armedbear-cvs] r11773 - trunk/abcl/src/org/armedbear/lisp
Erik Huelsmann
ehuelsmann at common-lisp.net
Tue Apr 21 17:26:04 UTC 2009
Author: ehuelsmann
Date: Tue Apr 21 13:26:02 2009
New Revision: 11773
Log:
Fix MULTIPLE-VALUE-SETQ and (SETF (VALUES ...) ...) when
setting the value of symbol macros.
Fixes MULTIPLE-VALUE-SETQ.5 and MULTIPLE-VALUE-SETQ.8.
Modified:
trunk/abcl/src/org/armedbear/lisp/setf.lisp
Modified: trunk/abcl/src/org/armedbear/lisp/setf.lisp
==============================================================================
--- trunk/abcl/src/org/armedbear/lisp/setf.lisp (original)
+++ trunk/abcl/src/org/armedbear/lisp/setf.lisp Tue Apr 21 13:26:02 2009
@@ -63,9 +63,13 @@
(resolve (%car form)))
(let (temp)
(cond ((symbolp form)
- (let ((new-var (gensym)))
- (values nil nil (list new-var)
- `(setq ,form ,new-var) form)))
+ (multiple-value-bind (expansion expanded)
+ (macroexpand-1 form environment)
+ (if expanded
+ (get-setf-expansion expansion environment)
+ (let ((new-var (gensym)))
+ (values nil nil (list new-var)
+ `(setq ,form ,new-var) form)))))
((setq temp (get (car form) 'setf-inverse))
(get-setf-method-inverse form `(,temp) nil))
((setq temp (get (car form) 'setf-expander))
More information about the armedbear-cvs
mailing list