Function: cl--generic-specializers-apply-to-type-p

cl--generic-specializers-apply-to-type-p is a byte-compiled function defined in cl-generic.el.gz.

Signature

(cl--generic-specializers-apply-to-type-p SPECIALIZERS TYPE)

Documentation

Return non-nil if a method with SPECIALIZERS applies to TYPE.

Source Code

;; Defined in /usr/src/emacs/lisp/emacs-lisp/cl-generic.el.gz
(defun cl--generic-specializers-apply-to-type-p (specializers type)
  "Return non-nil if a method with SPECIALIZERS applies to TYPE."
  (let ((applies nil))
    (dolist (specializer specializers)
      (if (memq (car-safe specializer) '(subclass eieio--static))
          (setq specializer (nth 1 specializer)))
      ;; Don't include the methods that are "too generic", such as those
      ;; applying to `eieio-default-superclass'.
      (and (not (memq specializer '(t eieio-default-superclass)))
           (or (equal type specializer)
               (when (symbolp specializer)
                 (let ((sclass (cl--find-class specializer))
                       (tclass (cl--find-class type)))
                   (when (and sclass tclass)
                     (member specializer (cl--class-allparents tclass))))))
           (setq applies t)))
    applies))