aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohn Wiegley2017-12-01 11:30:11 -0800
committerJohn Wiegley2017-12-01 11:30:11 -0800
commit09be976c1852fa5d36fe26794c43ad48a4ea12ee (patch)
treec4c22034eb1f15554aee4089ca850946ae58899e
parent9e8e9aa4eed75b23231f8593d57c257be92cda49 (diff)
downloademacs-09be976c1852fa5d36fe26794c43ad48a4ea12ee.tar.gz
emacs-09be976c1852fa5d36fe26794c43ad48a4ea12ee.zip
:demand should not override an explicit use of :after
Fixes https://github.com/jwiegley/use-package/issues/529
-rw-r--r--lisp/use-package/use-package.el4
-rw-r--r--test/lisp/use-package/use-package-tests.el20
2 files changed, 23 insertions, 1 deletions
diff --git a/lisp/use-package/use-package.el b/lisp/use-package/use-package.el
index 4e652649861..5119e394ebe 100644
--- a/lisp/use-package/use-package.el
+++ b/lisp/use-package/use-package.el
@@ -1768,6 +1768,10 @@ this file. Usage:
1768 (not (memq :defer args))) 1768 (not (memq :defer args)))
1769 (plist-put args :demand t) 1769 (plist-put args :demand t)
1770 args)))) 1770 args))))
1771 ;; The :demand keyword should not override :after
1772 (if (and (plist-member args* :after)
1773 (plist-member args* :demand))
1774 (setq args* (use-package-plist-delete args* :demand)))
1771 (when (and use-package-always-ensure 1775 (when (and use-package-always-ensure
1772 (plist-member args* :load-path) 1776 (plist-member args* :load-path)
1773 (not (plist-member orig-args :ensure))) 1777 (not (plist-member orig-args :ensure)))
diff --git a/test/lisp/use-package/use-package-tests.el b/test/lisp/use-package/use-package-tests.el
index 3db6f19e901..64f5ab534d3 100644
--- a/test/lisp/use-package/use-package-tests.el
+++ b/test/lisp/use-package/use-package-tests.el
@@ -928,7 +928,25 @@
928 (load "foo" nil t)))) 928 (load "foo" nil t))))
929 (require 'foo nil 'nil) 929 (require 'foo nil 'nil)
930 (config) 930 (config)
931 t)))) 931 t)))
932
933 ;; #529 - :demand should not override an explicit use of :after
934 (match-expansion
935 (use-package foo :demand t :after bar)
936 `(progn
937 (eval-after-load 'bar
938 '(require 'foo nil t))))
939
940 (let ((byte-compile-current-file t))
941 (match-expansion
942 (use-package foo :demand t :after bar)
943 `(progn
944 (eval-and-compile
945 (eval-when-compile
946 (with-demoted-errors "Cannot load foo: %S" nil
947 (load "foo" nil t))))
948 (eval-after-load 'bar
949 '(require 'foo nil t))))))
932 950
933(ert-deftest use-package-test/:config () 951(ert-deftest use-package-test/:config ()
934 (match-expansion 952 (match-expansion