Function: elisp-scope--analyze-condition-case-1

elisp-scope--analyze-condition-case-1 is a byte-compiled function defined in elisp-scope.el.gz.

Signature

(elisp-scope--analyze-condition-case-1 VAR BODYFORM &rest HANDLERS)

Source Code

;; Defined in /usr/src/emacs/lisp/emacs-lisp/elisp-scope.el.gz
(elisp-scope-define-special-form-analyzer condition-case (var bodyform &rest handlers)
  (let* ((bare (bare-symbol var))
         (beg (when (symbol-with-pos-p var) (symbol-with-pos-pos var)))
         (l (elisp-scope--local-new bare beg elisp-scope-local-bindings)))
    (when beg (elisp-scope--binding bare beg))
    (elisp-scope-1 bodyform elisp-scope-output-spec)
    (dolist (handler handlers)
      (dolist (cond-name (ensure-list (car-safe handler)))
        (when-let* ((cbeg (elisp-scope--sym-pos cond-name))
                    (cbare (elisp-scope--sym-bare cond-name))
                    (clen (length (symbol-name cbare))))
          (cond
           ((booleanp cbare))
           ((keywordp cbare) (elisp-scope--report 'constant cbeg cbare))
           (t                (elisp-scope--report 'condition cbeg cbare)))))
      (let ((elisp-scope-local-bindings l))
        (elisp-scope-n (cdr handler) elisp-scope-output-spec)))))