]> git.eshelyaron.com Git - emacs.git/commitdiff
Allow suppressing messages about the wrong number of arguments
authorLars Ingebrigtsen <larsi@gnus.org>
Sun, 22 May 2022 18:06:24 +0000 (20:06 +0200)
committerLars Ingebrigtsen <larsi@gnus.org>
Sun, 22 May 2022 18:07:22 +0000 (20:07 +0200)
* lisp/emacs-lisp/byte-run.el (with-suppressed-warnings): Add
`wrong-args'.
* lisp/emacs-lisp/bytecomp.el (byte-compile-emit-callargs-warn)
(byte-compile-subr-wrong-args): Allow suppressing wrong number of
arguments.

lisp/emacs-lisp/byte-run.el
lisp/emacs-lisp/bytecomp.el

index 0113051c8eb4388519bc108ba709990c08122b4e..2d11f350f0bab025acfb2397341e22b64922ddc8 100644 (file)
@@ -637,7 +637,7 @@ The warnings that can be suppressed are a subset of the warnings
 in `byte-compile-warning-types'; see the variable
 `byte-compile-warnings' for a fuller explanation of the warning
 types.  The types that can be suppressed with this macro are
-`free-vars', `callargs', `redefine', `obsolete',
+`free-vars', `callargs', `redefine', `obsolete', `wrong-args',
 `interactive-only', `lexical', `mapcar', `constants' and
 `suspicious'.
 
index e72b96af4a968cbdeecf5cbcdd0202384a0058a0..920cdbe5a6f20c96a7629ae67b6ff43dad4fa04c 100644 (file)
@@ -1494,15 +1494,16 @@ when printing the error message."
                 byte-compile-unresolved-functions)))))
 
 (defun byte-compile-emit-callargs-warn (name actual-args min-args max-args)
-  (byte-compile-warn-x
-   name
-   "%s called with %d argument%s, but %s %s"
-   name actual-args
-   (if (= 1 actual-args) "" "s")
-   (if (< actual-args min-args)
-       "requires"
-     "accepts only")
-   (byte-compile-arglist-signature-string (cons min-args max-args))))
+  (when (byte-compile-warning-enabled-p 'wrong-args name)
+    (byte-compile-warn-x
+     name
+     "`%s' called with %d argument%s, but %s %s"
+     name actual-args
+     (if (= 1 actual-args) "" "s")
+     (if (< actual-args min-args)
+         "requires"
+       "accepts only")
+     (byte-compile-arglist-signature-string (cons min-args max-args)))))
 
 (defun byte-compile--check-arity-bytecode (form bytecode)
   "Check that the call in FORM matches that allowed by BYTECODE."
@@ -3838,12 +3839,13 @@ If it is nil, then the handler is \"byte-compile-SYMBOL.\""
 
 \f
 (defun byte-compile-subr-wrong-args (form n)
-  (byte-compile-warn-x (car form)
-                        "`%s' called with %d arg%s, but requires %s"
-                        (car form) (length (cdr form))
-                        (if (= 1 (length (cdr form))) "" "s") n)
-  ;; Get run-time wrong-number-of-args error.
-  (byte-compile-normal-call form))
+  (when (byte-compile-warning-enabled-p 'wrong-args (car form))
+    (byte-compile-warn-x (car form)
+                         "`%s' called with %d arg%s, but requires %s"
+                         (car form) (length (cdr form))
+                         (if (= 1 (length (cdr form))) "" "s") n)
+    ;; Get run-time wrong-number-of-args error.
+    (byte-compile-normal-call form)))
 
 (defun byte-compile-no-args (form)
   (if (not (= (length form) 1))