From 2ba2e7217f520a43a098b2ef92a452868b88cc70 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Fri, 20 Nov 2020 16:45:56 -0500 Subject: [PATCH] Don't optimize away `eval` when its lexical context is different * lisp/emacs-lisp/bytecomp.el (byte-compile-file-form-eval): Obey lexical-binding. --- lisp/emacs-lisp/bytecomp.el | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el index cbda16d051b..e6f6a12b53d 100644 --- a/lisp/emacs-lisp/bytecomp.el +++ b/lisp/emacs-lisp/bytecomp.el @@ -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))) -- 2.39.5