emacs/test/lisp/emacs-lisp
Stefan Monnier d1be48fded Edebug: Overload edebug-form-spec even less
The `edebug-form-spec` symbol property was used both to map forms's
head symbol to the corresponding spec, and to map spec element names
to their expansion.

This lead to name conflicts which break instrumentation of examples such as

    (cl-flet ((gate (x) x)) (gate 4))

because of the Edebug spec element `gate`.
So introduce a new symbol property `edebug-elem-spec`.

* lisp/subr.el (def-edebug-elem-spec): New function.

* lisp/emacs-lisp/edebug.el (edebug--get-elem-spec): New function.
(edebug-match-symbol): Use it.
(Core Edebug elems): Put them on `edebug-elem-spec` instead of
`edebug-form-spec`.
(ELisp special forms): Set their `edebug-form-spec` via dolist.
(Other non-core Edebug elems): Use `def-edebug-elem-spec`.
(edebug-\`): Use `declare`.

* lisp/emacs-lisp/pcase.el (pcase-PAT, pcase-FUN, pcase-QPAT):
* lisp/skeleton.el (skeleton-edebug-spec):
* lisp/emacs-lisp/cl-macs.el: Use `def-edebug-elem-spec`.

* test/lisp/emacs-lisp/edebug-tests.el
(edebug-tests--conflicting-internal-names): New test.
* test/lisp/emacs-lisp/edebug-resources/edebug-test-code.el
(edebug-test-code-cl-flet1): New test case.

* doc/lispref/edebug.texi (Specification List): Add `def-edebug-elem-spec`.
(Specification Examples): Use it.

* doc/lispref/loading.texi (Hooks for Loading): Avoid the use of
`def-edebug-spec` in example (better use `debug` declaration).
2021-02-12 19:28:25 -05:00
..
bytecomp-resources Fix spurious "Lexical argument shadows the dynamic variable" due to inlining 2021-01-21 13:15:05 -05:00
edebug-resources Edebug: Overload edebug-form-spec even less 2021-02-12 19:28:25 -05:00
eieio-tests Update copyright year to 2021 2021-01-01 01:13:56 -08:00
faceup-resources Update copyright year to 2021 2021-01-01 01:13:56 -08:00
faceup-tests Update copyright year to 2021 2021-01-01 01:13:56 -08:00
package-resources Update copyright year to 2021 2021-01-01 01:13:56 -08:00
shadow-resources Use lexical-binding in most remaining emacs-lisp tests 2020-04-30 12:09:51 +02:00
testcover-resources ; Minor license statement fixes 2021-02-08 09:10:57 +01:00
backquote-tests.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
backtrace-tests.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
benchmark-tests.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
bindat-tests.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
bytecomp-tests.el Fix local defvar scoping error (bug#46387) 2021-02-10 14:47:40 +01:00
cconv-tests.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
check-declare-tests.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
checkdoc-tests.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
cl-extra-tests.el ; Minor license statement fixes 2021-02-08 09:10:57 +01:00
cl-generic-tests.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
cl-lib-tests.el ; Minor license statement fixes 2021-02-08 09:10:57 +01:00
cl-macs-tests.el ; Minor license statement fixes 2021-02-08 09:10:57 +01:00
cl-preloaded-tests.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
cl-print-tests.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
cl-seq-tests.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
copyright-tests.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
derived-tests.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
easy-mmode-tests.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
edebug-tests.el Edebug: Overload edebug-form-spec even less 2021-02-12 19:28:25 -05:00
ert-tests.el ; Minor license statement fixes 2021-02-08 09:10:57 +01:00
ert-x-tests.el ; Minor license statement fixes 2021-02-08 09:10:57 +01:00
find-func-tests.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
float-sup-tests.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
generator-tests.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
gv-tests.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
hierarchy-tests.el Use lexical-binding in more tests 2020-08-29 22:41:51 +02:00
let-alist-tests.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
lisp-mode-tests.el ; Minor license statement fixes 2021-02-08 09:10:57 +01:00
lisp-tests.el ; Minor license statement fixes 2021-02-08 09:10:57 +01:00
macroexp-tests.el * lisp/emacs-lisp/macroexp.el (macroexp--fgrep): Break cycles 2021-02-10 16:06:24 -05:00
map-tests.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
memory-report-tests.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
nadvice-tests.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
package-tests.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
pcase-tests.el * lisp/emacs-lisp/pcase.el: Add support for not to pred 2021-01-16 14:21:57 -05:00
pp-tests.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
regexp-opt-tests.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
ring-tests.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
rmc-tests.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
rx-tests.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
seq-tests.el Fix recently uncovered 'make check' failures 2021-01-23 23:38:19 +00:00
shadow-tests.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
subr-x-tests.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
syntax-tests.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
tabulated-list-test.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
testcover-tests.el ; Minor license statement fixes 2021-02-08 09:10:57 +01:00
text-property-search-tests.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
thunk-tests.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
timer-tests.el Prefer skip-unless in more tests 2021-01-13 17:39:53 +01:00
unsafep-tests.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
warnings-tests.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00