chiark / gitweb /
src/classes.lisp: Fix `print-object' on `sod-initializer'.
authorMark Wooding <mdw@distorted.org.uk>
Tue, 5 Jan 2016 17:50:13 +0000 (17:50 +0000)
committerMark Wooding <mdw@distorted.org.uk>
Sun, 29 May 2016 13:40:40 +0000 (14:40 +0100)
Would have recursed forever.

Also use `with-slots' to make the whole thing rather shorter: I think
it's allowed here.

src/classes.lisp

index 118b09b770aac09b2458db758529497caa8d5051..94ace121a9c3e9ef7a83b54d43c7cde11809b8b8 100644 (file)
@@ -294,14 +294,11 @@ (defclass sod-initializer ()
    and `sod-instance-initializer'."))
 
 (defmethod print-object ((initializer sod-initializer) stream)
-  (if *print-escape*
-      (print-unreadable-object (initializer stream :type t)
-       (format stream "~A = ~A"
-               (sod-initializer-slot initializer)
-               initializer))
-      (format stream "~:[{~A}~;~A~]"
-             (eq (sod-initializer-value-kind initializer) :single)
-             (sod-initializer-value-form initializer))))
+  (with-slots (slot value-kind value-form) initializer
+    (if *print-escape*
+       (print-unreadable-object (initializer stream :type t)
+         (format stream "~A = ~A" slot value-form))
+       (format stream "~:[{~A}~;~A~]" (eq value-kind :single) value-form))))
 
 (export 'sod-class-initializer)
 (defclass sod-class-initializer (sod-initializer)