;;;----- Licensing notice ---------------------------------------------------
;;;
-;;; This file is part of the Sensble Object Design, an object system for C.
+;;; This file is part of the Sensible Object Design, an object system for C.
;;;
;;; SOD is free software; you can redistribute it and/or modify
;;; it under the terms of the GNU General Public License as published by
(methods :initarg :methods :initform nil
:type list :accessor sod-class-methods)
- (class-precedence-list :type list :accessor sod-class-precedence-list)
+ (class-precedence-list :type list :reader sod-class-precedence-list)
- (%type :type c-class-type :accessor sod-class-type)
+ (%type :type c-class-type :reader sod-class-type)
- (chain-head :type sod-class :accessor sod-class-chain-head)
- (chain :type list :accessor sod-class-chain)
- (chains :type list :accessor sod-class-chains)
+ (chain-head :type sod-class :reader sod-class-chain-head)
+ (chain :type list :reader sod-class-chain)
+ (chains :type list :reader sod-class-chains)
- (%ilayout :type ilayout :accessor sod-class-ilayout)
- (effective-methods :type list :accessor sod-class-effective-methods)
- (vtables :type list :accessor sod-class-vtables)
+ (%ilayout :type ilayout :reader sod-class-ilayout)
+ (effective-methods :type list :reader sod-class-effective-methods)
+ (vtables :type list :reader sod-class-vtables)
- (state :initform nil :type (member nil :finalized broken)
- :accessor sod-class-state))
+ (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)