diff options
author | John Wiegley <johnw@newartisans.com> | 2017-12-06 16:56:25 -0800 |
---|---|---|
committer | John Wiegley <johnw@newartisans.com> | 2017-12-06 16:56:25 -0800 |
commit | 7cc17cee8f8ae2093d98efebf429cd10e9b0b81c (patch) | |
tree | 5727d79fd5bb3cace6e465e36ab5875aabbec4b9 /lisp | |
parent | 71fc224961510a56baff2e4686ccca484824f58d (diff) | |
download | emacs-7cc17cee8f8ae2093d98efebf429cd10e9b0b81c.tar.gz emacs-7cc17cee8f8ae2093d98efebf429cd10e9b0b81c.tar.bz2 emacs-7cc17cee8f8ae2093d98efebf429cd10e9b0b81c.zip |
Pre-expand lexical-let, since otherwise it requires cl to be loaded
Fixes https://github.com/jwiegley/use-package/issues/571
Diffstat (limited to 'lisp')
-rw-r--r-- | lisp/use-package/use-package-core.el | 19 |
1 files changed, 11 insertions, 8 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. |