1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-06 06:20:55 -08:00

; (elisp-scope-1): Analyze macros with (debug t) as progn

Take an Edebug spec of t as an indication that all of the
macro's arguments are evaluated, and analyze them as such.
Only do so as a fallback for macros that we cannot expand,
because expanding can lead to more accurate analysis,
e.g. with regards to the output type of the form.
This commit is contained in:
Eshel Yaron 2025-10-02 15:22:51 +02:00
parent cfc58025cd
commit ceeeb390f0
No known key found for this signature in database
GPG key ID: EF3EE9CA35D78618

View file

@ -2736,7 +2736,6 @@ are analyzed."
((special-form-p bare) (elisp-scope-report-s f 'special-form) (elisp-scope-n forms))
((macrop bare) (elisp-scope-report-s f 'macro)
(cond
;; ((eq (get bare 'edebug-form-spec) t) (elisp-scope-n forms))
((elisp-scope-safe-macro-p bare)
(let* ((warning-minimum-log-level :emergency)
(macroexp-inhibit-compiler-macros t)
@ -2746,7 +2745,8 @@ are analyzed."
(macroexpand-all-environment
(append (mapcar #'list elisp-scope-unsafe-macros) macroexpand-all-environment))
(expanded (ignore-errors (macroexpand-1 form macroexpand-all-environment))))
(elisp-scope-1 expanded outtype)))))
(elisp-scope-1 expanded outtype)))
((eq (get bare 'edebug-form-spec) t) (elisp-scope-n forms))))
((or (functionp bare) (memq bare elisp-scope-local-functions))
(elisp-scope-report-s f 'function) (elisp-scope-n forms))
(t