]> git.eshelyaron.com Git - emacs.git/commitdiff
Remove incorrect byte-hunk-handler for `eval`
authorMattias Engdegård <mattiase@acm.org>
Sat, 18 Dec 2021 18:45:38 +0000 (19:45 +0100)
committerMattias Engdegård <mattiase@acm.org>
Sat, 18 Dec 2021 19:09:48 +0000 (20:09 +0100)
This optimisation is of very limited utility and miscompiles top-level
code having the form (eval 'CODE t) by replacing it with CODE which
will then, as things currently stand, be evaluated with dynamic binding.

* lisp/emacs-lisp/bytecomp.el (byte-compile-file-form-eval): Remove.

lisp/emacs-lisp/bytecomp.el

index 644d9f1a470f17d3968a01c8be6502bd22da15df..a98c9197a06e4b66a8f03d125e91aa8847756f63 100644 (file)
@@ -2677,15 +2677,6 @@ list that represents a doc string reference.
   (prog1 (byte-compile-keep-pending form)
     (apply 'make-obsolete (mapcar 'eval (cdr form)))))
 
-;; This handler is not necessary, but it makes the output from dont-compile
-;; and similar macros cleaner.
-(put 'eval 'byte-hunk-handler 'byte-compile-file-form-eval)
-(defun byte-compile-file-form-eval (form)
-  (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)))
-
 (defun byte-compile-file-form-defmumble (name macro arglist body rest)
   "Process a `defalias' for NAME.
 If MACRO is non-nil, the definition is known to be a macro.