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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user