X-Git-Url: https://git.distorted.org.uk/~mdw/sod/blobdiff_plain/a535feed31204e82c6443411d16a03958c3ca4d2..4b8e5c0347115ff30841f1d1e71afe59ecb6c82c:/src/class-make-impl.lisp diff --git a/src/class-make-impl.lisp b/src/class-make-impl.lisp index f9d5734..878f813 100644 --- a/src/class-make-impl.lisp +++ b/src/class-make-impl.lisp @@ -172,7 +172,7 @@ (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)) @@ -216,7 +216,7 @@ (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) @@ -226,7 +226,7 @@ (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 @@ -235,7 +235,7 @@ (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"