[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#70137: 30.0.50; pp-macroexpand-last-sexp buffers should turn lexical
From: |
Stefan Monnier |
Subject: |
bug#70137: 30.0.50; pp-macroexpand-last-sexp buffers should turn lexical binding on |
Date: |
Wed, 10 Apr 2024 17:39:43 -0400 |
User-agent: |
Gnus/5.13 (Gnus v5.13) |
> If you call pp-macroexpand-last-sexp in a buffer with lexical binding,
> the resulting *Pp Macroexpand Output* buffer has lexical binding turned off.
>
> The problem with this is that if you now go the *Pp Macroexpand Output*
> buffer and call pp-macroexpand-last-sexp again, this second macro
> expansion step may not reflect what would happen in the original buffer;
> I don't recall an example, but some macros expand differently in the two
> variable scoping modes.
Indeed. `dolist` and `dotimes` were such examples (tho nowadays they
return the same result). Most other examples I can think of signal
an error when used without lexical binding. There are a few more subtle
examples where the macro tests `macroexp--dynamic-variable-p`.
Do you happen to have a patch to propagate the value of
`lexical-binding` to the new buffer?
Stefan