From d97362d77951e32486aff2ed7005f8b9b047555c Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Sat, 17 Nov 2007 03:46:23 +0000 Subject: [PATCH] (byte-compile-declare-function): New function, byte-hunk-handler for declare-function. (byte-compile-callargs-warn): Handle declared functions. --- lisp/emacs-lisp/bytecomp.el | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el index 0248bb20f06..313df65f0c1 100644 --- a/lisp/emacs-lisp/bytecomp.el +++ b/lisp/emacs-lisp/bytecomp.el @@ -1258,7 +1258,7 @@ Each function's symbol gets added to `byte-compile-noruntime-functions'." (byte-compile-fdefinition (car form) t))) (sig (if (and def (not (eq def t))) (byte-compile-arglist-signature - (if (eq 'lambda (car-safe def)) + (if (memq (car-safe def) '(declared lambda)) (nth 1 def) (if (byte-code-function-p def) (aref def 0) @@ -2817,6 +2817,16 @@ If FORM is a lambda or a macro, byte-compile it as a function." (cdr body)) (body (list body)))) + +(put 'declare-function 'byte-hunk-handler 'byte-compile-declare-function) +(defun byte-compile-declare-function (form) + (push (cons (nth 1 form) + (if (< (length form) 4) ; arglist not specified + t + (list 'declared (nth 3 form)))) + byte-compile-function-environment) + nil) + ;; This is the recursive entry point for compiling each subform of an ;; expression. -- 2.39.2