]> git.eshelyaron.com Git - emacs.git/commitdiff
* test/lisp/emacs-lisp/macroexp-tests.el (macroexp--tests-file-name): Add case
authorStefan Monnier <monnier@iro.umontreal.ca>
Wed, 24 Feb 2021 23:39:06 +0000 (18:39 -0500)
committerStefan Monnier <monnier@iro.umontreal.ca>
Wed, 24 Feb 2021 23:39:06 +0000 (18:39 -0500)
Add use of `macroexp-file-name` from a macro called from within
a function, which works thanks to eager-macroexpansion (so the macro
is expanded which the file is being loaded rather than only later
when the function is called).

* test/lisp/emacs-lisp/macroexp-resources/m1.el
(macroexp--m1-tests-file-name): New function.

test/lisp/emacs-lisp/macroexp-resources/m1.el
test/lisp/emacs-lisp/macroexp-tests.el

index a2fe6ecf2ed666facff55f1ff1dd0b976fe06aa2..96b5f7091af6f0a9f90905b5e7155235a534f4ed 100644 (file)
@@ -29,5 +29,8 @@
 (eval-when-compile
   (defconst macroexp--m1-tests-comp-filename (macroexp-file-name)))
 
+(defun macroexp--m1-tests-file-name ()
+  (macroexp--test-get-file-name))
+
 (provide 'm1)
 ;;; m1.el ends here
index 0b26f109b9e198e327bf53d16a02fd1214d5e806..89d3882d1da348ac7590d843008182375e705d41 100644 (file)
@@ -34,6 +34,8 @@
 
 (defconst macroexp--tests-filename (macroexp-file-name))
 
+(defmacro macroexp--test-get-file-name () (macroexp-file-name))
+
 (ert-deftest macroexp--tests-file-name ()
   (should (string-match
            "\\`macroexp-tests.elc?\\'"
     (with-current-buffer
         (find-file-noselect (expand-file-name "m1.el" rsrc-dir))
       (defvar macroexp--m1-tests-filename)
+      (declare-function macroexp--m1-tests-file-name "m1" ())
       ;; `macroexp-file-name' should work with `eval-buffer'.
       (eval-buffer)
       (should (equal "m1.el"
                      (file-name-nondirectory macroexp--m1-tests-filename)))
+      (should (equal "m1.el"
+                     (file-name-nondirectory (macroexp--m1-tests-file-name))))
       (search-forward "macroexp--m1-tests-filename")
       (makunbound 'macroexp--m1-tests-filename)
       ;; `macroexp-file-name' should also work with `eval-defun'.