From: Mark Wooding Date: Thu, 26 May 2016 08:26:09 +0000 (+0100) Subject: doc/list-exports.lisp: Ignore generic functions with strange names. X-Git-Url: https://git.distorted.org.uk/~mdw/sod/commitdiff_plain/e36ab294e68c45e6f1db9896bb7de9979d69a38c?hp=91d9ba3cb6ed57640dc29c2b2e73bb89e2628484 doc/list-exports.lisp: Ignore generic functions with strange names. CMUCL introduces functions `(pcl:class-predicate CLASS)' for its own internal purposes, and it's not interesting to list them. --- diff --git a/doc/list-exports.lisp b/doc/list-exports.lisp index 5eab34e..a61fe9e 100644 --- a/doc/list-exports.lisp +++ b/doc/list-exports.lisp @@ -281,9 +281,10 @@ (defun analyse-generic-functions (package) (setf package (find-package package)) (flet ((function-name-core (name) - (etypecase name - (symbol name) - ((cons (eql setf) t) (cadr name))))) + (typecase name + (symbol (values name t)) + ((cons (eql setf) t) (values (cadr name) t)) + (t (values nil nil))))) (let ((methods (make-hash-table)) (functions (make-hash-table)) (externs (make-hash-table))) @@ -302,10 +303,11 @@ (when class (dolist (func (specializer-direct-generic-functions class)) - (let ((name (function-name-core - (generic-function-name func)))) - (when (or (not (eq (symbol-package name) package)) - (gethash name externs)) + (multiple-value-bind (name knownp) + (function-name-core (generic-function-name func)) + (when (and knownp + (or (not (eq (symbol-package name) package)) + (gethash name externs))) (setf (gethash func functions) t) (dolist (method (specializer-direct-methods class)) (setf (gethash method methods) t)))))))))