To keep risk in the current release branch low, do not avoid compiler
macros as suggested by Stefan in the bug, but rather suppress all errors.
* lisp/progmodes/elisp-mode.el (elisp--local-variables): Silence
messages. Suppress all errors during macro expansion. (Bug#58148)
Do not merge to master.
(error 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)
+ (warning-minimum-log-level :emergency))
(advice-add 'macroexpand :around macroexpand-advice)
- (macroexpand-all sexp))
+ (condition-case nil
+ (macroexpand-all sexp)
+ (error sexp)))
(advice-remove 'macroexpand macroexpand-advice)))
(vars (elisp--local-variables-1 nil sexp)))
(delq nil