]> git.eshelyaron.com Git - emacs.git/commitdiff
Pre-expand lexical-let, since otherwise it requires cl to be loaded
authorJohn Wiegley <johnw@newartisans.com>
Thu, 7 Dec 2017 00:56:25 +0000 (16:56 -0800)
committerJohn Wiegley <johnw@newartisans.com>
Thu, 7 Dec 2017 00:56:25 +0000 (16:56 -0800)
Fixes https://github.com/jwiegley/use-package/issues/571

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

index 517671b87f1c409c42d212f17dbc107e4ea89212..d2910ed56865c37918d0dac5842a77f87a49d61d 100644 (file)
@@ -671,14 +671,17 @@ If ALLOW-EMPTY is non-nil, it's OK for ARGS to be an empty list."
 (defun use-package-memoize (f arg)
   "Ensure the macro-expansion of F applied to ARG evaluates ARG
 no more than once."
-  (let ((loaded (cl-gensym "use-package--loaded"))
-        (result (cl-gensym "use-package--result"))
-        (next (cl-gensym "use-package--next")))
-    `((lexical-let (,loaded ,result)
-        ,@(funcall f `((if ,loaded
-                           ,result
-                         (setq ,loaded t)
-                         (setq ,result ,arg))))))))
+  (let* ((loaded (cl-gensym "use-package--loaded"))
+         (result (cl-gensym "use-package--result"))
+         (next (cl-gensym "use-package--next"))
+         (body `(lexical-let (,loaded ,result)
+                  ,@(funcall f `((if ,loaded
+                                     ,result
+                                   (setq ,loaded t)
+                                   (setq ,result ,arg)))))))
+    `(,(if (eq use-package-verbose 'errors)
+           body
+         (macroexpand body)))))
 
 (defsubst use-package-normalize-value (label arg)
   "Normalize the Lisp value given by ARG.
index 283758f5160fcac413ea2f938e6b884b01952ee8..9dcab5fe63b5f62f3478e992f009b58fd37ecb03 100644 (file)
            (eval-after-load 'quux
              '(if ,_ ,_
                 (setq ,_ t)
-                (setq ,_ (require 'foo nil nil)))))))
-   ))
+                (setq ,_ (require 'foo nil nil)))))))))
 
 (ert-deftest use-package-test/:after-7 ()
   (match-expansion
       (eval-after-load 'bow
         '(if ,_ ,_
            (setq ,_ t)
-           (setq ,_ (require 'foo nil nil)))))
-   ))
+           (setq ,_ (require 'foo nil nil)))))))
 
 (ert-deftest use-package-test/:after-8 ()
   (match-expansion
            (eval-after-load 'quux
              '(if ,_ ,_
                 (setq ,_ t)
-                (setq ,_ (require 'foo nil nil)))))))
-   ))
+                (setq ,_ (require 'foo nil nil)))))))))
 
 (ert-deftest use-package-test/:after-9 ()
   (match-expansion
         '(eval-after-load 'bow
            '(if ,_ ,_
               (setq ,_ t)
-              (setq ,_ (require 'foo nil nil))))))
-   ))
+              (setq ,_ (require 'foo nil nil))))))))
 
 (ert-deftest use-package-test/:after-10 ()
   (match-expansion
       (eval-after-load 'baz
         '(if ,_ ,_
            (setq ,_ t)
-           (setq ,_ (require 'foo nil nil)))))
-   ))
+           (setq ,_ (require 'foo nil nil)))))))
 
 (ert-deftest use-package-test/:demand-1 ()
   (match-expansion