Don't optimize away eval when its lexical context is different

* lisp/emacs-lisp/bytecomp.el (byte-compile-file-form-eval):
Obey lexical-binding.
This commit is contained in:
Stefan Monnier 2020-11-20 16:45:56 -05:00
parent 6924320aeb
commit 2ba2e7217f

View file

@ -2570,7 +2570,8 @@ list that represents a doc string reference.
;; and similar macros cleaner.
(put 'eval 'byte-hunk-handler 'byte-compile-file-form-eval)
(defun byte-compile-file-form-eval (form)
(if (eq (car-safe (nth 1 form)) 'quote)
(if (and (eq (car-safe (nth 1 form)) 'quote)
(equal (nth 2 form) lexical-binding))
(nth 1 (nth 1 form))
(byte-compile-keep-pending form)))