]> git.eshelyaron.com Git - emacs.git/commitdiff
cl-macs-tests.el (cl-&key-arguments): Fix regression
authorStefan Monnier <monnier@iro.umontreal.ca>
Tue, 27 Jun 2023 20:14:32 +0000 (16:14 -0400)
committerStefan Monnier <monnier@iro.umontreal.ca>
Tue, 27 Jun 2023 20:14:32 +0000 (16:14 -0400)
* lisp/emacs-lisp/bytecomp.el (byte-compile-form): Turn "cannot use
lexical var" errors into warnings.
Make the obey `with-suppressed-warnings`.

* test/lisp/emacs-lisp/cl-macs-tests.el (cl-&key-arguments):
Suppress warnings.

lisp/emacs-lisp/bytecomp.el
test/lisp/emacs-lisp/cl-macs-tests.el

index 659d698b603f67fa0d95f9d09d09ae62ed1596f6..99202185d8d3c7ff24054144e925f9ac5eb4acb5 100644 (file)
@@ -3473,8 +3473,9 @@ lambda-expression."
                              run-hook-with-args-until-failure))
           (pcase (cdr form)
             (`(',var . ,_)
-             (when (memq var byte-compile-lexical-variables)
-               (byte-compile-report-error
+             (when (and (memq var byte-compile-lexical-variables)
+                        (byte-compile-warning-enabled-p 'lexical var))
+               (byte-compile-warn
                 (format-message "%s cannot use lexical var `%s'" fn var))))))
         ;; Warn about using obsolete hooks.
         (if (memq fn '(add-hook remove-hook))
index 01ca56386e39cd30236b9e4b648fb5800710fecb..983cbfc8bc705bb00fbae7e907be6450161952fa 100644 (file)
@@ -812,8 +812,10 @@ See Bug#57915."
   ;; In ELisp function arguments are always statically scoped (bug#47552).
   (let ((cl--test-a 'dyn)
         ;; FIXME: How do we silence the "Lexical argument shadows" warning?
-        (f (cl-function (lambda (&key cl--test-a b)
-                          (list cl--test-a (symbol-value 'cl--test-a) b)))))
+        (f
+         (with-suppressed-warnings ((lexical cl--test-a))
+           (cl-function (lambda (&key cl--test-a b)
+                          (list cl--test-a (symbol-value 'cl--test-a) b))))))
     (should (equal (funcall f :cl--test-a 'lex :b 2) '(lex dyn 2)))))
 
 (cl-defstruct cl--test-s