Function: cl--expr-contains
cl--expr-contains is a byte-compiled function defined in
cl-macs.el.gz.
Signature
(cl--expr-contains X Y)
Documentation
Count number of times X refers to Y. Return nil for 0 times.
Source Code
;; Defined in /usr/src/emacs/lisp/emacs-lisp/cl-macs.el.gz
(defun cl--expr-contains (x y)
"Count number of times X refers to Y. Return nil for 0 times."
;; FIXME: This is naive, and it will cl-count Y as referred twice in
;; (let ((Y 1)) Y) even though it should be 0. Also it is often called on
;; non-macroexpanded code, so it may also miss some occurrences that would
;; only appear in the expanded code.
(cond ((equal y x) 1)
((and (consp x) (not (memq (car x) '(quote function cl-function))))
(let ((sum 0))
(while (consp x)
(setq sum (+ sum (or (cl--expr-contains (pop x) y) 0))))
(setq sum (+ sum (or (cl--expr-contains x y) 0)))
(and (> sum 0) sum)))
(t nil)))