mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-06 14:30:50 -08:00
The recent fix for bug#57397 introduced a regression, breaking the `cl-lib-symbol-macrolet-hide` test. It turned out that the origin of the problem was that `gv.el` uses `macroexpand-1` which does not (can't) use `macroexpand` but `cl-symbol-macrolet` failed to advise `macroexpand-1` the way it advised `macroexpand`. To fix this, we change `cl-symbol-macrolet` so it advises both, and we do that with a new `macroexpand` advice which delegates the bulk of the work to `macroexpand-1`. Along the way, I bumped into another bug in the interaction between `cl-letf` and `cl-symbol-macrolet`, which I tried to fix in `cl-letf`. I hear the war on `cl-symbol-macrolet` was a failure. Maybe ... just say no? * lisp/emacs-lisp/cl-macs.el (cl--sm-macroexpand-1): New function, extracted from `cl--sm-macroexpand`. (cl--sm-macroexpand): Rewrite completely. (cl-symbol-macrolet): Advise both `macroexpand` and `macroexpand-1`. (cl--letf): Don't use the "simple variable" code for symbol macros. * test/lisp/emacs-lisp/cl-lib-tests.el (cl-lib-symbol-macrolet-hide): Revert last change because the test was right. * test/lisp/emacs-lisp/cl-macs-tests.el (cl-macs-test--symbol-macrolet): Add a test case. |
||
|---|---|---|
| .. | ||
| bytecomp-resources | ||
| edebug-resources | ||
| eieio-tests | ||
| faceup-resources | ||
| faceup-tests | ||
| macroexp-resources | ||
| package-resources | ||
| pp-resources | ||
| shadow-resources | ||
| testcover-resources | ||
| backquote-tests.el | ||
| backtrace-tests.el | ||
| benchmark-tests.el | ||
| bindat-tests.el | ||
| bytecomp-tests.el | ||
| cconv-tests.el | ||
| check-declare-tests.el | ||
| checkdoc-tests.el | ||
| cl-extra-tests.el | ||
| cl-generic-tests.el | ||
| cl-lib-tests.el | ||
| cl-macs-tests.el | ||
| cl-preloaded-tests.el | ||
| cl-print-tests.el | ||
| cl-seq-tests.el | ||
| comp-cstr-tests.el | ||
| copyright-tests.el | ||
| derived-tests.el | ||
| easy-mmode-tests.el | ||
| edebug-tests.el | ||
| ert-tests.el | ||
| ert-x-tests.el | ||
| find-func-tests.el | ||
| float-sup-tests.el | ||
| generator-tests.el | ||
| gv-tests.el | ||
| hierarchy-tests.el | ||
| icons-tests.el | ||
| let-alist-tests.el | ||
| lisp-mnt-tests.el | ||
| lisp-mode-tests.el | ||
| lisp-tests.el | ||
| macroexp-tests.el | ||
| map-tests.el | ||
| memory-report-tests.el | ||
| multisession-tests.el | ||
| nadvice-tests.el | ||
| oclosure-tests.el | ||
| package-tests.el | ||
| pcase-tests.el | ||
| pp-tests.el | ||
| range-tests.el | ||
| regexp-opt-tests.el | ||
| ring-tests.el | ||
| rmc-tests.el | ||
| rx-tests.el | ||
| seq-tests.el | ||
| shadow-tests.el | ||
| shortdoc-tests.el | ||
| subr-x-tests.el | ||
| syntax-tests.el | ||
| tabulated-list-tests.el | ||
| testcover-tests.el | ||
| text-property-search-tests.el | ||
| thunk-tests.el | ||
| timer-tests.el | ||
| unsafep-tests.el | ||
| vtable-tests.el | ||
| warnings-tests.el | ||