(assert (null (butlast s (* 1440 most-positive-fixnum))))
(assert (null (nbutlast s (* 1440 most-positive-fixnum)))))
+(assert (eq :atom (last (list* 1 2 3 :atom) (eval 0))))
+(assert (eq :atom (last (list* 1 2 3 :atom) 0)))
+
;;; enforce lists in symbol-plist
(let ((s (gensym))
(l (list 1 3 4)))
(assert (not res))
(assert (typep err 'sb-kernel:bounding-indices-bad-error))))
+;;; ADJOIN must apply key to item as well
+(assert (equal '((:b)) (funcall
+ (compile nil '(lambda (x y) (adjoin x y :key #'car :test #'string=)))
+ (list 'b) (list '(:b)))))
+(assert (equal '((:b))
+ (let ((sb-ext:*evaluator-mode* :interpret))
+ (eval '(adjoin (list 'b) (list '(:b)) :key #'car :test #'string=)))))
+
+;;; constant list argument to ADJOIN
+(assert (equal '(:x :y) (funcall
+ (compile nil '(lambda (elt)
+ (declare (optimize speed))
+ (adjoin elt '(:x :y))))
+ ':x)))
+(assert (equal '(:x :y) (funcall
+ (compile nil '(lambda (elt)
+ (declare (optimize speed))
+ (adjoin elt '(:y))))
+ ':x)))