Run ERT tests with lexical-binding bound to t

* lisp/emacs-lisp/ert.el (ert-deftest, ert--run-test-internal):
Use t rather than the ambient file value for `lexical-binding` to
avoid bad lexbind coverage by mistake.
This commit is contained in:
Mattias Engdegård 2021-10-04 18:11:40 +02:00
parent 10e3bc610b
commit 0f2df36559

View file

@ -219,11 +219,7 @@ it has to be wrapped in `(eval (quote ...))'.
`(:expected-result-type ,expected-result))
,@(when tags-supplied-p
`(:tags ,tags))
:body (lambda ()
;; Use the value of `lexical-binding' in
;; the source file when evaluating the body.
(let ((lexical-binding ,lexical-binding))
,@body))))
:body (lambda () ,@body)))
',name))))
(defvar ert--find-test-regexp
@ -780,7 +776,8 @@ This mainly sets up debugger-related bindings."
;; handle ert errors. Once that's done, remove
;; `ert--should-signal-hook'. See Bug#24402 and Bug#11218 for
;; details.
(let ((debugger (lambda (&rest args)
(let ((lexical-binding t)
(debugger (lambda (&rest args)
(ert--run-test-debugger test-execution-info
args)))
(debug-on-error t)