Function: elisp-scope-named-let

elisp-scope-named-let is a byte-compiled function defined in elisp-scope.el.gz.

Signature

(elisp-scope-named-let NAME BINDINGS BODY &optional OUTSPEC)

Source Code

;; Defined in /usr/src/emacs/lisp/emacs-lisp/elisp-scope.el.gz
(defun elisp-scope-named-let (name bindings body &optional outspec)
  (let ((bare (elisp-scope--sym-bare name))
        (beg (elisp-scope--sym-pos name)))
    (when beg
      (elisp-scope--report 'function beg bare beg))
    (dolist (binding bindings)
      (let* ((sym (car (ensure-list binding)))
             (beg (symbol-with-pos-pos sym))
             (bare (bare-symbol sym)))
        (when beg (elisp-scope--binding bare beg))
        (elisp-scope-1 (cadr binding))))
    (let ((l elisp-scope-local-bindings))
      (dolist (binding bindings)
        (when-let* ((sym (car (ensure-list binding)))
                    (bare (elisp-scope--sym-bare sym)))
          (setq l (elisp-scope--local-new bare (elisp-scope--sym-pos sym) l))))
      (let ((pos (or beg (cons 'gen (incf elisp-scope--counter)))))
        (elisp-scope-with-local-definition bare
            (elisp-scope--local-function-analyzer pos)
          (let ((elisp-scope-local-bindings l)) (elisp-scope-n body outspec)))))))