Function: byte-compile-make-args-desc

byte-compile-make-args-desc is a byte-compiled function defined in bytecomp.el.gz.

Signature

(byte-compile-make-args-desc ARGLIST)

Source Code

;; Defined in /usr/src/emacs/lisp/emacs-lisp/bytecomp.el.gz
(defun byte-compile-make-args-desc (arglist)
  (let ((mandatory 0)
        nonrest (rest 0))
    (while (and arglist (not (memq (car arglist) '(&optional &rest))))
      (setq mandatory (1+ mandatory))
      (setq arglist (cdr arglist)))
    (setq nonrest mandatory)
    (when (eq (car arglist) '&optional)
      (setq arglist (cdr arglist))
      (while (and arglist (not (eq (car arglist) '&rest)))
        (setq nonrest (1+ nonrest))
        (setq arglist (cdr arglist))))
    (when arglist
      (setq rest 1))
    (if (> mandatory 127)
        (byte-compile-report-error "Too many (>127) mandatory arguments")
      (logior mandatory
              (ash nonrest 8)
              (ash rest 7)))))