diff options
Diffstat (limited to 'lisp/use-package/use-package.el')
-rw-r--r-- | lisp/use-package/use-package.el | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/lisp/use-package/use-package.el b/lisp/use-package/use-package.el index ab77fd2baf1..ade669be483 100644 --- a/lisp/use-package/use-package.el +++ b/lisp/use-package/use-package.el @@ -40,6 +40,7 @@ (require 'bind-key) (require 'bytecomp) (require 'diminish nil t) +(require 'bytecomp) (declare-function package-installed-p 'package) @@ -470,10 +471,13 @@ ARGS is a list of forms, so `((foo))' if only `foo' is being called." ;; Setup any required autoloads (if defer-loading - (mapcar #'(lambda (command) - `(unless (fboundp ',command) - (autoload #',command ,name-string nil t))) - commands)) + (apply + #'nconc + (mapcar #'(lambda (command) + `((unless (fboundp ',command) + (autoload #',command ,name-string nil t)) + (declare-function ,command ,name-string))) + commands))) (if (numberp deferral) `((run-with-idle-timer ,deferral nil #'require ',name-symbol nil t))) @@ -601,7 +605,9 @@ this file. Usage: `(featurep ',requires)) ,@expansion)))))) ;; (message "Expanded: %s" (pp-to-string body*)) - body*)))) + `(let ((byte-compile-warnings byte-compile-warnings)) + (byte-compile-disable-warning 'redefined) + ,body*))))) (put 'use-package 'lisp-indent-function 'defun) |