Use cl-gensym

This commit is contained in:
John Wiegley 2017-12-04 17:03:59 -08:00
parent ee07e709ea
commit 43f1be12b7

View file

@ -276,19 +276,6 @@ Must be set before loading use-package."
;;; Utility functions ;;; Utility functions
;; ;;
(defvar use-package-gensym-counter 0
"Number used to construct the name of the next symbol created
by `use-package-gensym'.")
(defun use-package-gensym (&optional prefix)
"Return a new uninterned symbol.
The name is made by appending `gensym-counter' to PREFIX.
PREFIX is a string, and defaults to \"g\"."
(let ((num (prog1 use-package-gensym-counter
(setq use-package-gensym-counter
(1+ use-package-gensym-counter)))))
(make-symbol (format "%s%d" (or prefix "g") num))))
(defsubst use-package-error (msg) (defsubst use-package-error (msg)
"Report MSG as an error, so the user knows it came from this package." "Report MSG as an error, so the user knows it came from this package."
(error "use-package: %s" msg)) (error "use-package: %s" msg))
@ -649,9 +636,9 @@ If ALLOW-EMPTY is non-nil, it's OK for ARGS to be an empty list."
(defun use-package-memoize (f arg) (defun use-package-memoize (f arg)
"Ensure the macro-expansion of F applied to ARG evaluates ARG "Ensure the macro-expansion of F applied to ARG evaluates ARG
no more than once." no more than once."
(let ((loaded (use-package-gensym "use-package--loaded")) (let ((loaded (cl-gensym "use-package--loaded"))
(result (use-package-gensym "use-package--result")) (result (cl-gensym "use-package--result"))
(next (use-package-gensym "use-package--next"))) (next (cl-gensym "use-package--next")))
`((lexical-let (,loaded ,result) `((lexical-let (,loaded ,result)
(lexical-let ((,next (lambda () (lexical-let ((,next (lambda ()
(if ,loaded (if ,loaded
@ -934,7 +921,7 @@ representing symbols (that may need to be autloaded)."
use-package--hush-function))) use-package--hush-function)))
(defun use-package-handler/:catch (name keyword arg rest state) (defun use-package-handler/:catch (name keyword arg rest state)
(let* ((context (use-package-gensym "use-package--warning"))) (let* ((context (cl-gensym "use-package--warning")))
(cond (cond
((not arg) ((not arg)
(use-package-process-keywords name rest state)) (use-package-process-keywords name rest state))