(prepare-function :initarg :prepare-function :type (or symbol function)
:reader sod-slot-prepare-function))
(:documentation
- "Special class for slots defined on SodClass.
+ "Special class for slots defined on `SodClass'.
These slots need class-specific initialization. It's easier to keep all
of the information (name, type, and how to initialize them) about these
((slot sod-class-slot) slot-names &key pset)
(declare (ignore slot-names))
(default-slot (slot 'initializer-function)
- (get-property pset :initializer-function t nil))
+ (get-property pset :initializer-function :func nil))
(default-slot (slot 'prepare-function)
- (get-property pset :prepare-function t nil)))
+ (get-property pset :prepare-function :func nil)))
(export 'sod-class-effective-slot)
(defclass sod-class-effective-slot (effective-slot)
(prepare-function :initarg :prepare-function :type (or symbol function)
:reader effective-slot-prepare-function))
(:documentation
- "Special class for slots defined on SodClass.
+ "Special class for slots defined on `SodClass'.
This class ignores any explicit initializers and computes initializer
values using the slot's INIT-FUNC slot and a magical protocol during
(defmethod slot-unbound
(clos-class (class sod-class) (slot-name (eql 'effective-methods)))
+ (declare (ignore clos-class))
(setf (slot-value class 'effective-methods)
(compute-effective-methods class)))
(defmethod slot-unbound
(clos-class (class sod-class) (slot-name (eql 'ilayout)))
+ (declare (ignore clos-class))
(setf (slot-value class 'ilayout)
(compute-ilayout class)))
(defmethod slot-unbound
(clos-class (class sod-class) (slot-name (eql 'vtables)))
+ (declare (ignore clos-class))
(setf (slot-value class 'vtables)
(compute-vtables class)))