pprint: Make sure that lists like (loop . 10) can be printed.
[sbcl.git] / src / code / pprint.lisp
index f499bfb..f542878 100644 (file)
@@ -1142,7 +1142,8 @@ line break."
            (consp (cdr list))
            (cddr list)
            ;; Filter out (FLET FOO :IN BAR) names.
-           (not (eq :in (third list))))
+           (and (consp (cddr list))
+                (not (eq :in (third list)))))
       (funcall (formatter
                 "~:<~^~W~^ ~@_~:<~@{~:<~^~W~^~3I ~:_~/SB!PRETTY:PPRINT-LAMBDA-LIST/~1I~:@_~@{~W~^ ~_~}~:>~^ ~_~}~:>~1I~@:_~@{~W~^ ~_~}~:>")
                stream
@@ -1266,7 +1267,9 @@ line break."
 
 (defun pprint-defmethod (stream list &rest noise)
   (declare (ignore noise))
-  (if (consp (third list))
+  (if (and (consp (cdr list))
+           (consp (cddr list))
+           (consp (third list)))
       (pprint-defun stream list)
       (funcall (formatter
                 "~:<~^~W~^ ~@_~:I~W~^ ~W~^ ~:_~/SB!PRETTY:PPRINT-LAMBDA-LIST/~1I~@{ ~_~W~}~:>")
@@ -1373,7 +1376,7 @@ line break."
   (declare (ignore noise))
   (destructuring-bind (loop-symbol . clauses) list
     (declare (ignore loop-symbol))
-    (if (or (null clauses) (consp (car clauses)))
+    (if (or (atom clauses) (consp (car clauses)))
         (pprint-spread-fun-call stream list)
         (pprint-extended-loop stream list))))