has metaclass `~A'"
super supermeta))))))
+ ;; Check that all of the messages we can be sent have coherent collections
+ ;; of applicable methods. This can go wrong, for example, if we inherit
+ ;; methods with differently typed keyword arguments.
+ (finalization-error (:mismatched-applicable-methods)
+ (dolist (super (sod-class-precedence-list class))
+ (dolist (message (sod-class-messages super))
+ (let ((methods (sod-message-applicable-methods message class)))
+ (sod-message-check-methods message class methods)))))
+
;; Check that an initializer is available for every slot in the class's
;; metaclass. Skip this and trust the caller if the metaclass isn't
;; finalized yet: in that case, we must be bootstrapping, and we must hope