]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp/emacs-lisp/thunk.el: Assert lexical-binding
authorMichael Heerdegen <michael_heerdegen@web.de>
Thu, 26 Oct 2017 10:57:55 +0000 (12:57 +0200)
committerMichael Heerdegen <michael_heerdegen@web.de>
Wed, 1 Nov 2017 13:43:19 +0000 (14:43 +0100)
This fixes Bug#28990.  Also add a note to the file header that
creating thunks requires lexical-binding.
(thunk-delay): `cl-assert' lexical-binding.

lisp/emacs-lisp/thunk.el

index bb6d277c27067e364fe2376566e3e086eff69ae2..371d10444b2fb0efaced00a57e0a8a8854596b3f 100644 (file)
@@ -29,9 +29,9 @@
 ;; Thunk provides functions and macros to delay the evaluation of
 ;; forms.
 ;;
-;; Use `thunk-delay' to delay the evaluation of a form, and
-;; `thunk-force' to evaluate it. The result of the evaluation is
-;; cached, and only happens once.
+;; Use `thunk-delay' to delay the evaluation of a form (requires
+;; lexical-binding), and `thunk-force' to evaluate it. The result of
+;; the evaluation is cached, and only happens once.
 ;;
 ;; Here is an example of a form which evaluation is delayed:
 ;;
 
 ;;; Code:
 
+(eval-when-compile (require 'cl-macs))
+
 (defmacro thunk-delay (&rest body)
   "Delay the evaluation of BODY."
   (declare (debug t))
+  (cl-assert lexical-binding)
   (let ((forced (make-symbol "forced"))
         (val (make-symbol "val")))
     `(let (,forced ,val)