Commit b7f67d43 authored by Stefan Monnier's avatar Stefan Monnier
Browse files

* lisp/emacs-lisp/macroexp.el (macroexp-file-name): Work in `eval-buffer`

Rely on `current-load-list` instead of `load-file-name`.

* lisp/emacs-lisp/bytecomp.el (byte-compile-close-variables):
Change the var we override accordingly.
parent 46b54e5b
Pipeline #9494 passed with stages
in 34 minutes and 42 seconds
...@@ -1731,7 +1731,7 @@ It is too wide if it has any lines longer than the largest of ...@@ -1731,7 +1731,7 @@ It is too wide if it has any lines longer than the largest of
;; This is used in `macroexp-file-name' to make sure that ;; This is used in `macroexp-file-name' to make sure that
;; loading file A which does (byte-compile-file B) won't ;; loading file A which does (byte-compile-file B) won't
;; cause macro calls in B to think they come from A. ;; cause macro calls in B to think they come from A.
(load-file-name nil) (current-load-list (list nil))
) )
,@body)) ,@body))
......
...@@ -127,7 +127,11 @@ A non-nil result is expected to be reliable when called from a macro in order ...@@ -127,7 +127,11 @@ A non-nil result is expected to be reliable when called from a macro in order
to find the file in which the macro's call was found, and it should be to find the file in which the macro's call was found, and it should be
reliable as well when used at the top-level of a file. reliable as well when used at the top-level of a file.
Other uses risk returning non-nil value that point to the wrong file." Other uses risk returning non-nil value that point to the wrong file."
(or load-file-name (bound-and-true-p byte-compile-current-file))) ;; `eval-buffer' binds `current-load-list' but not `load-file-name',
;; so prefer using it over using `load-file-name'.
(let ((file (car (last current-load-list))))
(or (if (stringp file) file)
(bound-and-true-p byte-compile-current-file))))
(defvar macroexp--warned (make-hash-table :test #'equal :weakness 'key)) (defvar macroexp--warned (make-hash-table :test #'equal :weakness 'key))
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment