Function: elisp-scope-cl-macrolet
elisp-scope-cl-macrolet is a byte-compiled function defined in
elisp-scope.el.gz.
Signature
(elisp-scope-cl-macrolet BINDINGS BODY OUTSPEC)
Source Code
;; Defined in /usr/src/emacs/lisp/emacs-lisp/elisp-scope.el.gz
(defun elisp-scope-cl-macrolet (bindings body outspec)
(if-let* ((b (car bindings)))
(let ((name (car b))
(arglist (cadr b))
(mbody (cddr b)))
(elisp-scope-cl-lambda arglist mbody)
(when-let* ((bare (elisp-scope--sym-bare name)))
(let ((beg (elisp-scope--sym-pos name)))
;; TODO: Use a bespoke 'local-macro-definition' role.
(when beg (elisp-scope--report 'macro beg bare beg))
(let ((pos (or beg (cons 'gen (incf elisp-scope--counter)))))
(elisp-scope-with-local-definition bare
(lambda (f &rest _)
(when (symbol-with-pos-p f)
(elisp-scope--report 'macro (symbol-with-pos-pos f) bare pos)))
(elisp-scope-cl-macrolet (cdr bindings) body outspec))))))
(elisp-scope-n body outspec)))