((class sod-class) name (slot sod-slot) pset &key location)
(with-slots (initargs) class
(with-slots ((type %type)) slot
- (push (make-instance (get-property pset :initarg-class :symbol
- 'sod-slot-initarg)
- :location (file-location location)
- :class class :name name :type type :slot slot)
- initargs))))
+ (setf initargs
+ (append initargs
+ (cons (make-instance (get-property pset :initarg-class
+ :symbol
+ 'sod-slot-initarg)
+ :location (file-location location)
+ :class class :name name
+ :type type :slot slot)
+ nil))))))
(defmethod sod-initarg-default ((initarg sod-initarg)) nil)
(defmethod shared-initialize :after
((message sod-message) slot-names &key pset)
- (declare (ignore slot-names pset))
(with-slots ((type %type)) message
- (check-message-type message type)))
+ (check-message-type message type))
+ (default-slot-from-property (message 'readonlyp slot-names)
+ (pset :readonly :boolean)
+ nil))
(defmethod check-message-type ((message sod-message) (type c-function-type))
nil)