Pacify byte-compiler for byte-compile-macroexpand-declare-function

* lisp/emacs-lisp/bytecomp.el: Change signature of
byte-compile-macroexpand-declare-function to match that of
declare-function.
This commit is contained in:
Paul Eggert
2016-05-18 00:14:18 -07:00
parent 639fd22e29
commit b4d1cddc1b

View File

@@ -2958,23 +2958,24 @@ for symbols generated by the byte compiler itself."
(list body))))
;; Special macro-expander used during byte-compilation.
(defun byte-compile-macroexpand-declare-function (fn file &rest args)
(let ((gotargs (and (consp args) (listp (car args))))
(defun byte-compile-macroexpand-declare-function (fn file &optional arglist
fileonly)
(let ((gotargs (listp arglist))
(unresolved (assq fn byte-compile-unresolved-functions)))
(when unresolved ; function was called before declaration
(if (and gotargs (byte-compile-warning-enabled-p 'callargs))
(byte-compile-arglist-warn fn (car args) nil)
(byte-compile-arglist-warn fn arglist nil)
(setq byte-compile-unresolved-functions
(delq unresolved byte-compile-unresolved-functions))))
(push (cons fn (if gotargs
(list 'declared (car args))
(list 'declared arglist)
t)) ; Arglist not specified.
byte-compile-function-environment))
;; We are stating that it _will_ be defined at runtime.
(setq byte-compile-noruntime-functions
(delq fn byte-compile-noruntime-functions))
;; Delegate the rest to the normal macro definition.
(macroexpand `(declare-function ,fn ,file ,@args)))
(macroexpand `(declare-function ,fn ,file ,arglist ,fileonly)))
;; This is the recursive entry point for compiling each subform of an