:demand should not override an explicit use of :after

Fixes https://github.com/jwiegley/use-package/issues/529
This commit is contained in:
John Wiegley 2017-12-01 11:30:11 -08:00
parent 9e8e9aa4ee
commit 09be976c18
2 changed files with 23 additions and 1 deletions

View file

@ -1768,6 +1768,10 @@ this file. Usage:
(not (memq :defer args)))
(plist-put args :demand t)
args))))
;; The :demand keyword should not override :after
(if (and (plist-member args* :after)
(plist-member args* :demand))
(setq args* (use-package-plist-delete args* :demand)))
(when (and use-package-always-ensure
(plist-member args* :load-path)
(not (plist-member orig-args :ensure)))

View file

@ -928,7 +928,25 @@
(load "foo" nil t))))
(require 'foo nil 'nil)
(config)
t))))
t)))
;; #529 - :demand should not override an explicit use of :after
(match-expansion
(use-package foo :demand t :after bar)
`(progn
(eval-after-load 'bar
'(require 'foo nil t))))
(let ((byte-compile-current-file t))
(match-expansion
(use-package foo :demand t :after bar)
`(progn
(eval-and-compile
(eval-when-compile
(with-demoted-errors "Cannot load foo: %S" nil
(load "foo" nil t))))
(eval-after-load 'bar
'(require 'foo nil t))))))
(ert-deftest use-package-test/:config ()
(match-expansion