Stefan Monnier writes: >> + (let ((inhibit-message t) ;[1] >> + (warning-minimum-log-level :emergency)) >> (advice-add 'macroexpand :around macroexpand-advice) >> - (macroexpand-all sexp)) >> + (condition-case nil ;[3] >> + (macroexpand-all sexp) >> + (t sexp))) > > This `t` catches more than errors. Better replace it with `error`. Done plus Eli's comments from that other branch. >> - (let ((warning-minimum-log-level :emergency)) >> + (let ((inhibit-message t) ;[1] >> + (macroexp-inhibit-compiler-macros t) ;[2] >> + (warning-minimum-log-level :emergency)) >> (advice-add 'macroexpand-1 :around macroexpand-advice) >> - (macroexpand-all sexp elisp--local-macroenv)) >> + (condition-case nil ;[3] >> + (macroexpand-all sexp elisp--local-macroenv) >> + (t sexp))) > > What kind of errors are we expecting to catch with this > `condition-case`? The pre-existing advice is supposed to catch macro > expansion errors, and the new let-binding is supposed to catch > compiler-macro errors, so it seems to me there aren't any *expected* > errors left. If so, better remove this `condition-case` (or replace it > with `with-demoted-errors`) since all it has left to do is to hide any > real coding error that may come up and that we'd like to be told about. Done. FWIW, bug#60081 can also be merged into this one. (The other bugs that Zehao mentions in her/his last post are either merged already or typos/not related to this bug.) Technically, I should be able to merge that bug (after having been pointed to admin/notes/bugtracker), but is it OK for me (as a "plain user") to do so? Or should someone with more authority do that? Thanks.