]> git.eshelyaron.com Git - emacs.git/commitdiff
* test/lisp/electric-tests.el: Fix switch to lexical-binding.
authorStefan Monnier <monnier@iro.umontreal.ca>
Fri, 29 Jan 2021 21:49:12 +0000 (16:49 -0500)
committerStefan Monnier <monnier@iro.umontreal.ca>
Fri, 29 Jan 2021 21:49:12 +0000 (16:49 -0500)
(define-electric-pair-test): Don't presume that function values are
self-evaluating.

test/lisp/electric-tests.el

index 05a6989664d8d0909921035fa3e56d24450305b9..62a42b7fe446f52f10616372595200cfab69f5a0 100644 (file)
@@ -135,9 +135,11 @@ The buffer's contents should %s:
                   (length fixture)
                   fixture
                   (if fixture-fn (format "\nNow call this:\n\n%s"
-                                         (pp-to-string fixture-fn)) "")
+                                         (pp-to-string fixture-fn))
+                    "")
                   (if bindings (format "\nEnsure the following bindings:\n\n%s"
-                                       (pp-to-string bindings)) "")
+                                       (pp-to-string bindings))
+                    "")
                   char
                   (if (string= fixture expected-string) "stay" "become")
                   (replace-regexp-in-string "\n" "\\\\n" expected-string)
@@ -163,8 +165,11 @@ The buffer's contents should %s:
           (test-in-comments t)
           (test-in-strings t)
           (test-in-code t)
-          (fixture-fn #'(lambda ()
-                          (electric-pair-mode 1))))
+          ;; The semantics of CL's defmacro "default values" is subtle:
+          ;; contrary to the actual arguments, these are evaluated (and
+          ;; are expected to return the "default form").
+          ;; `fixture-fn' contains a form whose evaluation returns a function.
+          (fixture-fn '#'electric-pair-mode))
   `(progn
      ,@(cl-loop
         for mode in (eval modes) ;FIXME: avoid `eval'