Subject: Re: Regression in macroexpand from a4ec9ca (April 1)
From: Daniel Mendler <[email-masked]>
To: Ship Mints <[email-masked]>
Cc: [email-masked], Stefan Kangas <[email-masked]>, Stefan Monnier <[email-masked]>
Date: Sat, 05 Apr 2025 15:39:04 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Ship Mints <[email-masked]> writes:

> Below found in the wild expanding a macro from Daniel's marginalia package.
>
> Emacs 30
> (macroexpand-all '(foo bar)) -> (foo bar)
> (macroexpand-all '((foo) bar)) -> ((foo) bar)
>
> master
> (macroexpand-all '(foo bar)) -> (foo bar)
> (macroexpand-all '((foo) bar)) -> signals an error
>
> Debugger entered--Lisp error: (wrong-type-argument symbolp (foo))
>   signal(wrong-type-argument (symbolp (foo)))
>   function-get((foo) compiler-macro)
>
> Whether this is an intended or unintended consequence, I can't say, not
> being a macro expert.

To give some context - `function-get' and `function-put' have recently
been changed to signal an error on non-symbol arguments in commit
4ec9ca12969018cdf15b8cc713b3ba054326f99 by Stefan Kangas. The problem is
that the macro expander calls `function-get' on arbitrary values in
function position.

Daniel