summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp/bytecomp.el
diff options
context:
space:
mode:
authorNoam Postavsky <npostavs@gmail.com>2018-01-06 21:16:33 -0500
committerNoam Postavsky <npostavs@gmail.com>2018-01-06 21:22:24 -0500
commit5f720046783c5b29fad3765303c1ad57aba167ce (patch)
tree2e2e05d977b762fe05edac7bd521e3b551ab6e6d /lisp/emacs-lisp/bytecomp.el
parent15cd18991c1d9a9bafeef7bf9b4dad91ecc0332a (diff)
downloademacs-5f720046783c5b29fad3765303c1ad57aba167ce.tar.gz
emacs-5f720046783c5b29fad3765303c1ad57aba167ce.tar.bz2
emacs-5f720046783c5b29fad3765303c1ad57aba167ce.zip
Revert "Fix command repetition with lexical-binding (Bug#29334)"
It does not work with more complicated interactive forms, because byte-compile-lambda actually receives an intermediate form of code rather than valid lisp source (Bug#29988). * src/callint.c (Fcall_interactively): * lisp/emacs-lisp/bytecomp.el (byte-compile-lambda): Revert previous change, and update commentary.
Diffstat (limited to 'lisp/emacs-lisp/bytecomp.el')
-rw-r--r--lisp/emacs-lisp/bytecomp.el7
1 files changed, 6 insertions, 1 deletions
diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el
index 564aac2fc6a..cc3a24e3d51 100644
--- a/lisp/emacs-lisp/bytecomp.el
+++ b/lisp/emacs-lisp/bytecomp.el
@@ -2839,7 +2839,12 @@ for symbols generated by the byte compiler itself."
(while (consp (cdr form))
(setq form (cdr form)))
(setq form (car form)))
- (if (eq (car-safe form) 'list)
+ (if (and (eq (car-safe form) 'list)
+ ;; For code using lexical-binding, form is not
+ ;; valid lisp, but rather an intermediate form
+ ;; which may include "calls" to
+ ;; internal-make-closure (Bug#29988).
+ (not lexical-binding))
nil
(setq int `(interactive ,newform)))))
((cdr int)