Function: byte-compile--first-symbol-with-pos

byte-compile--first-symbol-with-pos is a byte-compiled function defined in bytecomp.el.gz.

Signature

(byte-compile--first-symbol-with-pos FORM)

Documentation

Return the first symbol with position in form, or nil if none.

Order is by depth-first search.

Source Code

;; Defined in /usr/src/emacs/lisp/emacs-lisp/bytecomp.el.gz
(defun byte-compile--first-symbol-with-pos (form)
  "Return the first symbol with position in form, or nil if none.
Order is by depth-first search."
  (named-let loop ((form form)
                   (depth 10))          ;Arbitrary limit.
    (cond
     ((<= depth 0) nil)                 ;Avoid cycles (bug#58601).
     ((symbol-with-pos-p form) form)
     ((consp form)
      (or (loop (car form) (1- depth))
          (loop (cdr form) (1- depth))))
     ((or (vectorp form) (recordp form))
      (let ((len (length form))
            (i 0)
            (sym nil))
        (while (and (< i len)
                    (not (setq sym (loop (aref form i) (1- depth)))))
          (setq i (1+ i)))
        sym)))))