mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-11-22 07:09:54 +00:00
Silence macro expansion during completion at point
* lisp/emacs-lisp/macroexp.el (macroexp-inhibit-compiler-macros): Add variable. (macroexp--compiler-macro): Inspect that new variable and, if it is non-nil, return the input form unchanged. * lisp/progmodes/elisp-mode.el (elisp--local-variables): Silence messages. Avoid compiler macros. (Bug#58148)
This commit is contained in:
parent
095d64577c
commit
86e8f31505
@ -105,13 +105,21 @@ each clause."
|
||||
(macroexp--all-forms clause skip)
|
||||
clause)))
|
||||
|
||||
(defvar macroexp-inhibit-compiler-macros nil
|
||||
"Inhibit application of compiler macros if non-nil.")
|
||||
|
||||
(defun macroexp--compiler-macro (handler form)
|
||||
(condition-case-unless-debug err
|
||||
(apply handler form (cdr form))
|
||||
(error
|
||||
(message "Warning: Optimization failure for %S: Handler: %S\n%S"
|
||||
(car form) handler err)
|
||||
form)))
|
||||
"Apply compiler macro HANDLER to FORM and return the result.
|
||||
Unless `macroexp-inhibit-compiler-macros' is non-nil, in which
|
||||
case return FORM unchanged."
|
||||
(if macroexp-inhibit-compiler-macros
|
||||
form
|
||||
(condition-case-unless-debug err
|
||||
(apply handler form (cdr form))
|
||||
(error
|
||||
(message "Warning: Optimization failure for %S: Handler: %S\n%S"
|
||||
(car form) handler err)
|
||||
form))))
|
||||
|
||||
(defun macroexp--funcall-if-compiled (_form)
|
||||
"Pseudo function used internally by macroexp to delay warnings.
|
||||
|
@ -460,7 +460,11 @@ use of `macroexpand-all' as a way to find the \"underlying raw code\".")
|
||||
(message "Ignoring macroexpansion error: %S" err) form))))
|
||||
(sexp
|
||||
(unwind-protect
|
||||
(let ((warning-minimum-log-level :emergency))
|
||||
;; Silence any macro expansion errors when
|
||||
;; attempting completion at point (bug#58148).
|
||||
(let ((inhibit-message t)
|
||||
(macroexp-inhibit-compiler-macros t)
|
||||
(warning-minimum-log-level :emergency))
|
||||
(advice-add 'macroexpand-1 :around macroexpand-advice)
|
||||
(macroexpand-all sexp elisp--local-macroenv))
|
||||
(advice-remove 'macroexpand-1 macroexpand-advice)))
|
||||
|
Loading…
Reference in New Issue
Block a user