X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~mdw/git/sod/blobdiff_plain/97d10f8b1f631cd32ea5ac9118b253cb4142d391..2bc73f786f7dc35ecff3e1484a6376aae1de4962:/src/method-proto.lisp?ds=sidebyside diff --git a/src/method-proto.lisp b/src/method-proto.lisp index e85f62a..f7f1f47 100644 --- a/src/method-proto.lisp +++ b/src/method-proto.lisp @@ -64,13 +64,19 @@ (defgeneric primary-method-class (message) 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) @@ -147,6 +153,16 @@ (defgeneric sod-message-argument-tail (message) 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