bowbow99/xyzzy.ansify — Issue #24: symbol-macrolet で multiple-value-setq の多値式が展開されない
Author: bowbow99
Created: 2012-01-04 14:02:05+00:00
State: open
Labels: bug

`multiple-value-setq` の多値を返す式に含まれる symbol macros が展開されないっぽい。

(defstruct foo x y z)
=> #

(macroexpand-1
`(symbol-macrolet ((x (foo-x x))
(y (foo-y y))
(z (foo-z z)))
(multiple-value-setq (x y z) (values y z x))))
=> (progn
(multiple-value-bind (#1=#:G3999 #2=#:G4001 #3=#:G4003)
(values y z x)
(let* ((#4=#:G3998 x)
(#5=#:G4000 y)
(#6=#:G4002 z))
(system:*set-index-slot-value #4# 0 #1#)
(system:*set-index-slot-value #5# 1 #2#)
(system:*set-index-slot-value #6# 2 #3#)
#1#)))
=> t