+
+;;; SYMBOL-VALUE with a constant argument used to return a bogus read-form
+(with-test (:name :symbol-value-cas-expansion)
+ (multiple-value-bind (vars vals old new cas-form read-form)
+ (get-cas-expansion `(symbol-value t))
+ (assert (not vars))
+ (assert (not vals))
+ (assert (eq t (eval read-form))))
+ (multiple-value-bind (vars vals old new cas-form read-form)
+ (get-cas-expansion `(symbol-value *))
+ (let ((* :foo))
+ (assert (eq :foo
+ (eval `(let (,@(mapcar 'list vars vals))
+ ,read-form)))))
+ (let ((* :bar))
+ (assert (eq :bar
+ (eval `(let (,@(mapcar 'list vars vals))
+ ,read-form)))))))