]> git.eshelyaron.com Git - emacs.git/commitdiff
Make the expanded text for :after cleaner
authorJohn Wiegley <johnw@newartisans.com>
Wed, 6 Dec 2017 05:50:16 +0000 (05:50 +0000)
committerJohn Wiegley <johnw@newartisans.com>
Wed, 6 Dec 2017 06:02:28 +0000 (06:02 +0000)
lisp/use-package/use-package-core.el
test/lisp/use-package/use-package-tests.el

index 01b3ac3c1494a8a2842f483de75d731c1fdcbb1b..cacd74b256f74686f555cda2b6771e472c1b5524 100644 (file)
@@ -643,14 +643,14 @@ no more than once."
   (let ((loaded (cl-gensym "use-package--loaded"))
         (result (cl-gensym "use-package--result"))
         (next (cl-gensym "use-package--next")))
-    `((defvar ,loaded nil)
-      (defvar ,result nil)
-      (defvar ,next #'(lambda ()
-                        (if ,loaded
-                            ,result
-                          (setq ,loaded t)
-                          (setq ,result ,arg))))
-      ,(funcall f `(funcall ,next)))))
+    `((defconst ,loaded nil)
+      (defconst ,result nil)
+      (defconst ,next #'(lambda ()
+                          (if ,loaded
+                              ,result
+                            (setq ,loaded t)
+                            (setq ,result ,arg))))
+      ,@(funcall f `((funcall ,next))))))
 
 (defsubst use-package-normalize-value (label arg)
   "Normalize the Lisp value given by ARG.
@@ -946,9 +946,8 @@ representing symbols (that may need to be autloaded)."
           #'(lambda (keyword err)
               (let ((msg (format "%s/%s: %s" ',name keyword
                                  (error-message-string err))))
-                ,(when (eq use-package-verbose 'debug)
-                   `(progn
-                      (with-current-buffer
+                ,@(when (eq use-package-verbose 'debug)
+                    `((with-current-buffer
                           (get-buffer-create "*use-package*")
                         (goto-char (point-max))
                         (insert "-----\n" msg ,use-package--form)
@@ -1134,15 +1133,11 @@ FEATURES is a list containing keywords `:and' and `:all', where
 no keyword implies `:all'."
   (cond
    ((use-package-non-nil-symbolp features)
-    `(eval-after-load ',features
-       ,(if (member (car body) '(quote backquote \' \`))
-            body
-          (list 'quote body))))
+    `((eval-after-load ',features ',(macroexp-progn body))))
    ((and (consp features)
          (memq (car features) '(:or :any)))
-    (macroexp-progn
-     (mapcar #'(lambda (x) (use-package-require-after-load x body))
-             (cdr features))))
+    (cl-mapcan #'(lambda (x) (use-package-require-after-load x body))
+               (cdr features)))
    ((and (consp features)
          (memq (car features) '(:and :all)))
     (cl-dolist (next (cdr features))
@@ -1157,8 +1152,7 @@ no keyword implies `:all'."
     (if (or (null uses) (null body))
         body
       (if (<= uses 1)
-          (list (use-package-require-after-load
-                 arg (list 'quote (macroexp-progn body))))
+          (use-package-require-after-load arg body)
         (use-package-memoize
          (apply-partially #'use-package-require-after-load arg)
          (macroexp-progn body))))))
index cbfb98da0c035c02f5bd54a7ba77033f570ec3b7..4ce0cbc6eb496ea50580064cf88c05b1b2285a44 100644 (file)
    (use-package foo :catch t)
    `(progn
       (defvar ,_
-        #'(lambda
-            (keyword err)
-            (let
-                ((msg
-                  (format "%s/%s: %s" 'foo keyword
-                          (error-message-string err))))
-              nil
+        #'(lambda (keyword err)
+            (let ((msg (format "%s/%s: %s" 'foo keyword
+                               (error-message-string err))))
               (ignore
                (display-warning 'use-package msg :error)))))
       (condition-case-unless-debug err
   (match-expansion
    (use-package foo :after (:any bar quux))
    `(progn
-      (defvar ,_ nil)
-      (defvar ,_ nil)
-      (defvar ,_
+      (defconst ,_ nil)
+      (defconst ,_ nil)
+      (defconst ,_
         #'(lambda nil
             (if ,_ ,_
               (setq ,_ t)
               (setq ,_
                     (require 'foo nil nil)))))
-      (progn
-        (eval-after-load 'bar
-          '(funcall ,_))
-        (eval-after-load 'quux
-          '(funcall ,_))))))
+      (eval-after-load 'bar
+        '(funcall ,_))
+      (eval-after-load 'quux
+        '(funcall ,_)))))
 
 (ert-deftest use-package-test/:after-6 ()
   (match-expansion
    (use-package foo :after (:all (:any bar quux) bow))
    `(progn
-      (defvar ,_ nil)
-      (defvar ,_ nil)
-      (defvar ,_
+      (defconst ,_ nil)
+      (defconst ,_ nil)
+      (defconst ,_
         #'(lambda nil
             (if ,_ ,_
               (setq ,_ t)
   (match-expansion
    (use-package foo :after (:any (:all bar quux) bow))
    `(progn
-      (defvar ,_ nil)
-      (defvar ,_ nil)
-      (defvar ,_
+      (defconst ,_ nil)
+      (defconst ,_ nil)
+      (defconst ,_
         #'(lambda nil
             (if ,_ ,_
               (setq ,_ t)
               (setq ,_
                     (require 'foo nil nil)))))
-      (progn
-        (eval-after-load 'quux
-          '(eval-after-load 'bar
-             '(funcall ,_)))
-        (eval-after-load 'bow
-          '(funcall ,_))))))
+      (eval-after-load 'quux
+        '(eval-after-load 'bar
+           '(funcall ,_)))
+      (eval-after-load 'bow
+        '(funcall ,_)))))
 
 (ert-deftest use-package-test/:after-8 ()
   (match-expansion
    (use-package foo :after (:all (:any bar quux) (:any bow baz)))
    `(progn
-      (defvar ,_ nil)
-      (defvar ,_ nil)
-      (defvar ,_
+      (defconst ,_ nil)
+      (defconst ,_ nil)
+      (defconst ,_
         #'(lambda nil
             (if ,_ ,_
               (setq ,_ t)
               (setq ,_
                     (require 'foo nil nil)))))
-      (progn
-        (eval-after-load 'bow
-          '(progn
-             (eval-after-load 'bar
-               '(funcall ,_))
-             (eval-after-load 'quux
-               '(funcall ,_))))
-        (eval-after-load 'baz
-          '(progn
-             (eval-after-load 'bar
-               '(funcall ,_))
-             (eval-after-load 'quux
-               '(funcall ,_))))))))
+      (eval-after-load 'bow
+        '(progn
+           (eval-after-load 'bar
+             '(funcall ,_))
+           (eval-after-load 'quux
+             '(funcall ,_))))
+      (eval-after-load 'baz
+        '(progn
+           (eval-after-load 'bar
+             '(funcall ,_))
+           (eval-after-load 'quux
+             '(funcall ,_)))))))
 
 (ert-deftest use-package-test/:after-9 ()
   (match-expansion
    (use-package foo :after (:any (:all bar quux) (:all bow baz)))
    `(progn
-      (defvar ,_ nil)
-      (defvar ,_ nil)
-      (defvar ,_
+      (defconst ,_ nil)
+      (defconst ,_ nil)
+      (defconst ,_
         #'(lambda nil
             (if ,_ ,_
               (setq ,_ t)
               (setq ,_
                     (require 'foo nil nil)))))
-      (progn
-        (eval-after-load 'quux
-          '(eval-after-load 'bar
-             '(funcall ,_)))
-        (eval-after-load 'baz
-          '(eval-after-load 'bow
-             '(funcall ,_)))))))
+      (eval-after-load 'quux
+        '(eval-after-load 'bar
+           '(funcall ,_)))
+      (eval-after-load 'baz
+        '(eval-after-load 'bow
+           '(funcall ,_))))))
 
 (ert-deftest use-package-test/:after-10 ()
   (match-expansion
    (use-package foo :after (:any (:all bar quux) (:any bow baz)))
    `(progn
-      (defvar ,_ nil)
-      (defvar ,_ nil)
-      (defvar ,_
-        #'(lambda nil
-            (if ,_ ,_
-              (setq ,_ t)
-              (setq ,_
-                    (require 'foo nil nil)))))
-      (progn
-        (eval-after-load 'quux
-          '(eval-after-load 'bar
-             '(funcall ,_)))
-        (progn
-          (eval-after-load 'bow
-            '(funcall ,_))
-          (eval-after-load 'baz
-            '(funcall ,_)))))))
+      (defconst ,_ nil)
+      (defconst ,_ nil)
+      (defconst ,_
+        #'(lambda nil (if ,_ ,_
+                   (setq ,_ t)
+                   (setq ,_
+                         (require 'foo nil nil)))))
+      (eval-after-load 'quux
+        '(eval-after-load 'bar
+           '(funcall ,_)))
+      (eval-after-load 'bow
+        '(funcall ,_))
+      (eval-after-load 'baz
+        '(funcall ,_)))))
 
 (ert-deftest use-package-test/:demand-1 ()
   (match-expansion