`(%coerce-callable-to-fun ,fun))))
(let* ((cp (constant-lvar-p list))
(c-list (when cp (lvar-value list))))
- (cond ((and cp c-list (policy node (>= speed space)))
+ (cond ((and cp c-list (member name '(assoc member))
+ (policy node (>= speed space)))
`(let ,(mapcar (lambda (fun) `(,fun ,(ensure-fun fun))) funs)
,(open-code c-list)))
((and cp (not c-list))
(deftransform assoc ((item list &key key test test-not) * * :node node)
(transform-list-item-seek 'assoc item list key test test-not node))
+(deftransform adjoin ((item list &key key test test-not) * * :node node)
+ (transform-list-item-seek 'adjoin item list key test test-not node))
+
(deftransform memq ((item list) (t (constant-arg list)))
(labels ((rec (tail)
(if tail