X-Git-Url: https://git.distorted.org.uk/~mdw/sod/blobdiff_plain/e0808c472145fc81e52898bc9ac289e10c4f4f41..b7fcf94152e4c1938fbca55d13b1e6a64b694bd6:/src/classes.lisp diff --git a/src/classes.lisp b/src/classes.lisp index 118b09b..d403d10 100644 --- a/src/classes.lisp +++ b/src/classes.lisp @@ -88,7 +88,7 @@ (effective-methods :type list :reader sod-class-effective-methods) (vtables :type list :reader sod-class-vtables) - (state :initform nil :type (member nil :finalized broken) + (state :initform nil :type (member nil :finalized :broken) :reader sod-class-state)) (:documentation "Classes describe the layout and behaviour of objects. @@ -294,14 +294,11 @@ 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)