]> git.eshelyaron.com Git - emacs.git/commitdiff
:demand should not override an explicit use of :after
authorJohn Wiegley <johnw@newartisans.com>
Fri, 1 Dec 2017 19:30:11 +0000 (11:30 -0800)
committerJohn Wiegley <johnw@newartisans.com>
Fri, 1 Dec 2017 19:30:11 +0000 (11:30 -0800)
Fixes https://github.com/jwiegley/use-package/issues/529

lisp/use-package/use-package.el
test/lisp/use-package/use-package-tests.el

index 4e6526498611c4526bd6df1c27ef08ce2354e339..5119e394ebef61a5d482f764ae09208f2ef4fdd2 100644 (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)))
index 3db6f19e901a94e619c446f47a8138fc3f3f2e14..64f5ab534d3169e59bfdc80187788188cad8c2c9 100644 (file)
                                  (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