Fix make-array transforms.
[sbcl.git] / tests / pprint.impure.lisp
index 038af4d..4f10bd0 100644 (file)
     (assert (eq orig (pprint-dispatch 'some-symbol)))
     (assert (not (eq alt orig)))))
 
+(with-test (:name :pprint-improper-list)
+  (let* ((max-length 10)
+         (stream (make-broadcast-stream))
+         (errors
+           (loop for symbol being the symbol in :cl
+                 nconc
+                 (loop for i from 1 below max-length
+                       for list = (cons symbol 10) then (cons symbol list)
+                       when (nth-value 1 (ignore-errors (pprint list stream)))
+                       collect (format nil "(~{~a ~}~a . 10)" (butlast list) symbol)))))
+    (when errors
+      (error "Can't PPRINT imporper lists: ~a" errors))))
+
+(with-test (:name :pprint-circular-backq-comma)
+  ;; LP 1161218 reported by James M. Lawrence
+  (let ((string (write-to-string '(let ((#1=#:var '(99)))
+                                   `(progn ,@(identity #1#)))
+                                 :circle t :pretty t)))
+    (assert (not (search "#2#" string)))))
+
+(with-test (:name :pprint-dotted-setf)
+  (let ((*print-pretty* t))
+    (equal (format nil "~a" '(setf . a))
+           "(SETF . A)")))
+
 \f
 ;;; success