From 7cc17cee8f8ae2093d98efebf429cd10e9b0b81c Mon Sep 17 00:00:00 2001 From: John Wiegley Date: Wed, 6 Dec 2017 16:56:25 -0800 Subject: [PATCH] Pre-expand lexical-let, since otherwise it requires cl to be loaded Fixes https://github.com/jwiegley/use-package/issues/571 --- lisp/use-package/use-package-core.el | 19 +++++++++++-------- 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." (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. 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 @@ (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 @@ -1228,8 +1227,7 @@ (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 @@ -1254,8 +1252,7 @@ (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 @@ -1270,8 +1267,7 @@ '(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 @@ -1289,8 +1285,7 @@ (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 -- 2.39.2