diff options
| author | Eshel Yaron | 2025-10-08 15:46:45 +0200 |
|---|---|---|
| committer | Eshel Yaron | 2025-10-08 15:47:27 +0200 |
| commit | 240bf0679c5f1f39122526c5bdde67cc10c8236c (patch) | |
| tree | aa31f9659beb6ff8b65b033a6d6af556caa6b05c | |
| parent | 61caa91875ceb61181c2d88b5e69daabdcb9b721 (diff) | |
| download | emacs-240bf0679c5f1f39122526c5bdde67cc10c8236c.tar.gz emacs-240bf0679c5f1f39122526c5bdde67cc10c8236c.zip | |
; * lisp/emacs-lisp/elisp-scope.el (if-let*): Add comment.
| -rw-r--r-- | lisp/emacs-lisp/elisp-scope.el | 6 |
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 | ||