:location (file-location location)
:pset pset)))
(with-slots (slots) class
- (setf slots (append slots (list slot)))))))
+ (setf slots (append slots (list slot))))
+ slot)))
(defmethod shared-initialize :after ((slot sod-slot) slot-names &key pset)
"This method does nothing.
(file-location location))))
(with-slots (instance-initializers) class
(setf instance-initializers
- (append instance-initializers (list initializer)))))))
+ (append instance-initializers (list initializer))))
+ initializer)))
(defmethod make-sod-class-initializer
((class sod-class) nick name value-kind value-form pset
(file-location location))))
(with-slots (class-initializers) class
(setf class-initializers
- (append class-initializers (list initializer)))))))
+ (append class-initializers (list initializer))))
+ initializer)))
(defmethod make-sod-initializer-using-slot
((class sod-class) (slot sod-slot)
:location (file-location location)
:pset pset)))
(with-slots (messages) class
- (setf messages (append messages (list message)))))))
+ (setf messages (append messages (list message))))
+ message)))
(defmethod shared-initialize :after
((message sod-message) slot-names &key pset)
(declare (ignore slot-names pset))
- (with-slots (type) message
+ (with-slots ((type %type)) message
(check-message-type message type)))
(defmethod check-message-type ((message sod-message) (type c-function-type))
type body pset
(file-location location))))
(with-slots (methods) class
- (setf methods (append methods (list method)))))))
+ (setf methods (append methods (list method))))
+ method)))
(defmethod make-sod-method-using-message
((message sod-message) (class sod-class) type body pset location)
(declare (ignore slot-names pset))
;; Check that the arguments are named if we have a method body.
- (with-slots (body type) method
+ (with-slots (body (type %type)) method
(unless (or (not body)
(every (lambda (arg)
(or (eq arg :ellipsis)
(error "Abstract declarators not permitted in method definitions")))
;; Check the method type.
- (with-slots (message type) method
+ (with-slots (message (type %type)) method
(check-method-type method message type)))
(defmethod check-method-type
(defmethod check-method-type
((method sod-method) (message sod-message) (type c-function-type))
- (with-slots ((msgtype type)) message
+ (with-slots ((msgtype %type)) message
(unless (c-type-equal-p (c-type-subtype msgtype)
(c-type-subtype type))
(error "Method return type ~A doesn't match message ~A"