Function: cl--generic-search-method

cl--generic-search-method is a byte-compiled function defined in cl-generic.el.gz.

Signature

(cl--generic-search-method MET-NAME)

Documentation

For find-function-regexp-alist. Search for a cl-defmethod.

MET-NAME is as returned by cl--generic-load-hist-format.

Source Code

;; Defined in /usr/src/emacs/lisp/emacs-lisp/cl-generic.el.gz
;;; Add support for describe-function

(defun cl--generic-search-method (met-name)
  "For `find-function-regexp-alist'.  Search for a `cl-defmethod'.
MET-NAME is as returned by `cl--generic-load-hist-format'."
  ;; Presumably our caller is `find-function-search-for-symbol'.
  (declare-function find-func--regexp-of-symbol-name "find-func" (name))
  ;; FIXME: Handle also shorthands in the cdr of MET-NAME!
  (let ((base-re (concat "(\\(?:cl-\\)?defmethod[ \t]+"
                         (find-func--regexp-of-symbol-name (car met-name))
			 "\\_>")))
    (or
     (re-search-forward
      (concat base-re "[^&\"\n]*"
              (mapconcat (lambda (qualifier)
                           (regexp-quote (format "%S" qualifier)))
                         (cadr met-name)
                         "[ \t\n]*")
              (mapconcat (lambda (specializer)
                           (regexp-quote
                            (format "%S" (if (consp specializer)
                                             (nth 1 specializer) specializer))))
                         (remq t (cddr met-name))
                         "[ \t\n]*)[^&\"\n]*"))
      nil t)
     (re-search-forward base-re nil t))))