Don't use 'load-read-function' in byte-compile-from-buffer

* lisp/emacs-lisp/bytecomp.el (byte-compile-from-buffer): Call
read-positioning-symbols directly, rather than binding load-read-function to
it.  This is so that a lower level use of load-read-function will not return a
form containing symbols with position.
This commit is contained in:
Alan Mackenzie 2022-01-22 17:48:46 +00:00
parent 88e1f8b020
commit fd31ef21c5

View file

@ -2303,8 +2303,11 @@ With argument ARG, insert value in current buffer after the form."
(forward-line 1))
(not (eobp)))
(let* ((lread--unescaped-character-literals nil)
(load-read-function #'read-positioning-symbols)
(form (funcall load-read-function inbuffer))
;; Don't bind `load-read-function' to
;; `read-positioning-symbols' here. Calls to `read'
;; at a lower level must not get symbols with
;; position.
(form (read-positioning-symbols inbuffer))
(warning (byte-run--unescaped-character-literals-warning)))
(when warning (byte-compile-warn-x form "%s" warning))
(byte-compile-toplevel-file-form form)))