Function: byte-compile-callargs-warn

byte-compile-callargs-warn is a byte-compiled function defined in bytecomp.el.gz.

Signature

(byte-compile-callargs-warn FORM)

Source Code

;; Defined in /usr/src/emacs/lisp/emacs-lisp/bytecomp.el.gz
;; Warn if the form is calling a function with the wrong number of arguments.
(defun byte-compile-callargs-warn (form)
  (let* ((def (or (byte-compile-fdefinition (car form) nil)
		  (byte-compile-fdefinition (car form) t)))
         (sig (cond (def (byte-compile--function-signature def))
                    ((subrp (symbol-function (car form)))
                     (subr-arity (symbol-function (car form))))))
	 (ncall (length (cdr form))))
    ;; Check many or unevalled from subr-arity.
    (if (and (cdr-safe sig)
	     (not (numberp (cdr sig))))
	(setcdr sig nil))
    (if sig
	(when (or (< ncall (car sig))
		  (and (cdr sig) (> ncall (cdr sig))))
          (byte-compile-emit-callargs-warn
           (car form) ncall (car sig) (cdr sig))))
    (byte-compile-format-warn form)
    (byte-compile-function-warn (car form) (length (cdr form)) def)))