This protocol is used by `simple-message' subclasses."))
(export 'method-keyword-argument-lists)
-(defgeneric method-keyword-argument-lists (method direct-methods)
+(defgeneric method-keyword-argument-lists (method direct-methods state)
(:documentation
"Returns a list of keyword argument lists to be merged.
This should return a list suitable for passing to `merge-keyword-lists',
- i.e., each element should be a pair consisting of a list of `argument'
- objects and a string describing the source of the argument list."))
+ i.e., each element should be a pair consisting of a function describing
+ the source of the argument list (returning location and description), and
+ a list of `argument' objects.
+
+ The METHOD is the effective method being processed; DIRECT-METHODS is the
+ complete list of applicable direct methods (most specific first); and
+ STATE is an `inheritance-path-reporter-state' object which can be used by
+ the returned reporting functions."))
(export 'compute-sod-effective-method)
(defgeneric compute-sod-effective-method (message class)
No `me' argument is prepended; any `:ellipsis' is left as it is."))
+(export 'sod-method-description)
+(defgeneric sod-method-description (method)
+ (:documentation
+ "Return an adjectival phrase describing METHOD.
+
+ The result will be placed into an error message reading something like
+ ``Conflicting definition of DESCRIPTION direct method `bogus'''. Two
+ direct methods which can coexist in the same class, defined on the same
+ message, should have differing descriptions."))
+
(export 'sod-method-function-type)
(defgeneric sod-method-function-type (method)
(:documentation