src/c-types-{proto,impl,parse}.lisp: Add `storage specifiers' to the model.
[sod] / src / classes.lisp
index 118b09b..d403d10 100644 (file)
@@ -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.
    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)