diff options
Diffstat (limited to 'lisp/use-package')
-rw-r--r-- | lisp/use-package/use-package-core.el | 13 |
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. |