Move :ensure option from macro expansion phase to runtime phase

This commit is contained in:
Ivan Goncharov 2015-11-03 14:43:51 +13:00
parent ff8bdfcdca
commit ac47f783da

View file

@ -463,13 +463,11 @@ manually updated package."
(defun use-package-handler/:ensure (name keyword ensure rest state)
(let ((body (use-package-process-keywords name rest state)))
;; This happens at macro expansion time, not when the expanded code is
;; compiled or evaluated.
(let ((package-name (or (and (eq ensure t) (use-package-as-symbol name)) ensure)))
`((let ((package-name (or (and (eq ,ensure t) (use-package-as-symbol ',name)) ,ensure)))
(when package-name
(require 'package)
(use-package-ensure-elpa package-name)))
body))
,@body)))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;