diff options
| author | John Wiegley | 2017-12-06 16:56:25 -0800 |
|---|---|---|
| committer | John Wiegley | 2017-12-06 16:56:25 -0800 |
| commit | 7cc17cee8f8ae2093d98efebf429cd10e9b0b81c (patch) | |
| tree | 5727d79fd5bb3cace6e465e36ab5875aabbec4b9 | |
| parent | 71fc224961510a56baff2e4686ccca484824f58d (diff) | |
| download | emacs-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.el | 19 | ||||
| -rw-r--r-- | test/lisp/use-package/use-package-tests.el | 15 |
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 |
| 673 | no more than once." | 673 | no 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 |