aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEshel Yaron2025-10-08 15:46:45 +0200
committerEshel Yaron2025-10-08 15:47:27 +0200
commit240bf0679c5f1f39122526c5bdde67cc10c8236c (patch)
treeaa31f9659beb6ff8b65b033a6d6af556caa6b05c
parent61caa91875ceb61181c2d88b5e69daabdcb9b721 (diff)
downloademacs-240bf0679c5f1f39122526c5bdde67cc10c8236c.tar.gz
emacs-240bf0679c5f1f39122526c5bdde67cc10c8236c.zip
; * lisp/emacs-lisp/elisp-scope.el (if-let*): Add comment.
-rw-r--r--lisp/emacs-lisp/elisp-scope.el6
1 files changed, 6 insertions, 0 deletions
diff --git a/lisp/emacs-lisp/elisp-scope.el b/lisp/emacs-lisp/elisp-scope.el
index f689f4bb34f..3a695f4001a 100644
--- a/lisp/emacs-lisp/elisp-scope.el
+++ b/lisp/emacs-lisp/elisp-scope.el
@@ -2258,6 +2258,12 @@ property, or if the current buffer is trusted (see `trusted-content-p')."
2258 (elisp-scope-1 file '(symbol . feature)) 2258 (elisp-scope-1 file '(symbol . feature))
2259 (elisp-scope-1 form 'code)) 2259 (elisp-scope-1 form 'code))
2260 2260
2261;; We use a bespoke analyzer for `if-let*' instead of letting
2262;; `elisp-scope-1' expand it because `if-let*' expands to a form that
2263;; uses each binding symbol also as a bound symbol, and hence after
2264;; macro-expansion, we would analyze the same symbol(-with-position)
2265;; first as a `binding-variable' and then as `bound-variable'. With
2266;; this bespoke analyzer, we only analyze it as a `binding-variable'.
2261(elisp-scope-define-macro-analyzer if-let* (&optional varlist then &rest else) 2267(elisp-scope-define-macro-analyzer if-let* (&optional varlist then &rest else)
2262 (elisp-scope-if-let varlist then else elisp-scope-output-spec)) 2268 (elisp-scope-if-let varlist then else elisp-scope-output-spec))
2263 2269