Test warning suppressions with lexical binding

* test/lisp/emacs-lisp/bytecomp-tests.el
(test-byte-comp-compile-and-load): Add lexical cookie to file being
compiled as part of the test.
(bytecomp-test--with-suppressed-warnings): Comment out the test
for suppressing warnings when attempting to let-bind `nil`,
as that (1) doesn't work and (2) is a silly thing to do anyway.
This commit is contained in:
Mattias Engdegård 2022-06-06 10:47:42 +02:00
parent 3cbdd59146
commit 138d2f22f7

View file

@ -747,6 +747,7 @@ byte-compiled. Run with dynamic binding."
(ert-with-temp-file elcfile
:suffix ".elc"
(with-temp-buffer
(insert ";;; -*- lexical-binding: t -*-\n")
(dolist (form forms)
(print form (current-buffer)))
(write-region (point-min) (point-max) elfile nil 'silent))
@ -1227,12 +1228,19 @@ literals (Bug#20852)."
'((lexical prefixless))
"global/dynamic var .prefixless. lacks")
(test-suppression
'(defun foo()
(let ((nil t))
(message-mail)))
'((constants nil))
"Warning: attempt to let-bind constant .nil.")
;; FIXME: These messages cannot be suppressed reliably right now,
;; but attempting mutate `nil' or `5' is a rather daft thing to do
;; in the first place. Preventing mutation of constants such as
;; `most-positive-fixnum' makes more sense but the compiler doesn't
;; warn about that at all right now (it's caught at runtime, and we
;; allow writing the same value).
;;
;; (test-suppression
;; '(defun foo()
;; (let ((nil t))
;; (message-mail)))
;; '((constants nil))
;; "Warning: attempt to let-bind constant .nil.")
(test-suppression
'(progn