Stefan Monnier writes: >> I also wanted to ask whether to extend that approach to the other advice >> installed in `elisp--local-variables´ > > That would be nice, but... > >> but then noticed that `macroexpand´ is actually a built-in. > > `elisp--local-variables´ doesn't use that built-in any more, it uses > `macroexpand-1` instead, which is implemented in `macroexp.el` :-) > > But the problem is that the advice wraps the call within > a `condition-case` and that's inconvenient to do in a way which > doesn't interfere too much with "normal use" (e.g. doesn't hide/catch > errors when we don't want to, and doesn't impose too much of > a performance cost either). Agreed. Anyway, here are two patches: One for Emacs 29 and one for master. The patch for Emacs 29: - does not contain the rather non-local change for avoiding compiler macros. But it fixes this bug, anyway, by just ignoring all errors during the `macroexpand-all' call. - contains a "don't merge to master" maker in the commit message. What do you think?