summaryrefslogtreecommitdiff
path: root/lisp/use-package
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/use-package')
-rw-r--r--lisp/use-package/use-package-core.el13
1 files changed, 5 insertions, 8 deletions
diff --git a/lisp/use-package/use-package-core.el b/lisp/use-package/use-package-core.el
index cacd74b256f..7ed5b7482e1 100644
--- a/lisp/use-package/use-package-core.el
+++ b/lisp/use-package/use-package-core.el
@@ -643,14 +643,11 @@ no more than once."
(let ((loaded (cl-gensym "use-package--loaded"))
(result (cl-gensym "use-package--result"))
(next (cl-gensym "use-package--next")))
- `((defconst ,loaded nil)
- (defconst ,result nil)
- (defconst ,next #'(lambda ()
- (if ,loaded
- ,result
- (setq ,loaded t)
- (setq ,result ,arg))))
- ,@(funcall f `((funcall ,next))))))
+ `((lexical-let (,loaded ,result)
+ ,@(funcall f `((if ,loaded
+ ,result
+ (setq ,loaded t)
+ (setq ,result ,arg))))))))
(defsubst use-package-normalize-value (label arg)
"Normalize the Lisp value given by ARG.