aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohn Wiegley2017-12-06 16:56:25 -0800
committerJohn Wiegley2017-12-06 16:56:25 -0800
commit7cc17cee8f8ae2093d98efebf429cd10e9b0b81c (patch)
tree5727d79fd5bb3cace6e465e36ab5875aabbec4b9
parent71fc224961510a56baff2e4686ccca484824f58d (diff)
downloademacs-7cc17cee8f8ae2093d98efebf429cd10e9b0b81c.tar.gz
emacs-7cc17cee8f8ae2093d98efebf429cd10e9b0b81c.zip
Pre-expand lexical-let, since otherwise it requires cl to be loaded
Fixes https://github.com/jwiegley/use-package/issues/571
-rw-r--r--lisp/use-package/use-package-core.el19
-rw-r--r--test/lisp/use-package/use-package-tests.el15
2 files changed, 16 insertions, 18 deletions
diff --git a/lisp/use-package/use-package-core.el b/lisp/use-package/use-package-core.el
index 517671b87f1..d2910ed5686 100644
--- a/lisp/use-package/use-package-core.el
+++ b/lisp/use-package/use-package-core.el
@@ -671,14 +671,17 @@ If ALLOW-EMPTY is non-nil, it's OK for ARGS to be an empty list."
671(defun use-package-memoize (f arg) 671(defun use-package-memoize (f arg)
672 "Ensure the macro-expansion of F applied to ARG evaluates ARG 672 "Ensure the macro-expansion of F applied to ARG evaluates ARG
673no more than once." 673no more than once."
674 (let ((loaded (cl-gensym "use-package--loaded")) 674 (let* ((loaded (cl-gensym "use-package--loaded"))
675 (result (cl-gensym "use-package--result")) 675 (result (cl-gensym "use-package--result"))
676 (next (cl-gensym "use-package--next"))) 676 (next (cl-gensym "use-package--next"))
677 `((lexical-let (,loaded ,result) 677 (body `(lexical-let (,loaded ,result)
678 ,@(funcall f `((if ,loaded 678 ,@(funcall f `((if ,loaded
679 ,result 679 ,result
680 (setq ,loaded t) 680 (setq ,loaded t)
681 (setq ,result ,arg)))))))) 681 (setq ,result ,arg)))))))
682 `(,(if (eq use-package-verbose 'errors)
683 body
684 (macroexpand body)))))
682 685
683(defsubst use-package-normalize-value (label arg) 686(defsubst use-package-normalize-value (label arg)
684 "Normalize the Lisp value given by ARG. 687 "Normalize the Lisp value given by ARG.
diff --git a/test/lisp/use-package/use-package-tests.el b/test/lisp/use-package/use-package-tests.el
index 283758f5160..9dcab5fe63b 100644
--- a/test/lisp/use-package/use-package-tests.el
+++ b/test/lisp/use-package/use-package-tests.el
@@ -1213,8 +1213,7 @@
1213 (eval-after-load 'quux 1213 (eval-after-load 'quux
1214 '(if ,_ ,_ 1214 '(if ,_ ,_
1215 (setq ,_ t) 1215 (setq ,_ t)
1216 (setq ,_ (require 'foo nil nil))))))) 1216 (setq ,_ (require 'foo nil nil)))))))))
1217 ))
1218 1217
1219(ert-deftest use-package-test/:after-7 () 1218(ert-deftest use-package-test/:after-7 ()
1220 (match-expansion 1219 (match-expansion
@@ -1228,8 +1227,7 @@
1228 (eval-after-load 'bow 1227 (eval-after-load 'bow
1229 '(if ,_ ,_ 1228 '(if ,_ ,_
1230 (setq ,_ t) 1229 (setq ,_ t)
1231 (setq ,_ (require 'foo nil nil))))) 1230 (setq ,_ (require 'foo nil nil)))))))
1232 ))
1233 1231
1234(ert-deftest use-package-test/:after-8 () 1232(ert-deftest use-package-test/:after-8 ()
1235 (match-expansion 1233 (match-expansion
@@ -1254,8 +1252,7 @@
1254 (eval-after-load 'quux 1252 (eval-after-load 'quux
1255 '(if ,_ ,_ 1253 '(if ,_ ,_
1256 (setq ,_ t) 1254 (setq ,_ t)
1257 (setq ,_ (require 'foo nil nil))))))) 1255 (setq ,_ (require 'foo nil nil)))))))))
1258 ))
1259 1256
1260(ert-deftest use-package-test/:after-9 () 1257(ert-deftest use-package-test/:after-9 ()
1261 (match-expansion 1258 (match-expansion
@@ -1270,8 +1267,7 @@
1270 '(eval-after-load 'bow 1267 '(eval-after-load 'bow
1271 '(if ,_ ,_ 1268 '(if ,_ ,_
1272 (setq ,_ t) 1269 (setq ,_ t)
1273 (setq ,_ (require 'foo nil nil)))))) 1270 (setq ,_ (require 'foo nil nil))))))))
1274 ))
1275 1271
1276(ert-deftest use-package-test/:after-10 () 1272(ert-deftest use-package-test/:after-10 ()
1277 (match-expansion 1273 (match-expansion
@@ -1289,8 +1285,7 @@
1289 (eval-after-load 'baz 1285 (eval-after-load 'baz
1290 '(if ,_ ,_ 1286 '(if ,_ ,_
1291 (setq ,_ t) 1287 (setq ,_ t)
1292 (setq ,_ (require 'foo nil nil))))) 1288 (setq ,_ (require 'foo nil nil)))))))
1293 ))
1294 1289
1295(ert-deftest use-package-test/:demand-1 () 1290(ert-deftest use-package-test/:demand-1 ()
1296 (match-expansion 1291 (match-expansion