summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp/byte-opt.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/emacs-lisp/byte-opt.el')
-rw-r--r--lisp/emacs-lisp/byte-opt.el15
1 files changed, 5 insertions, 10 deletions
diff --git a/lisp/emacs-lisp/byte-opt.el b/lisp/emacs-lisp/byte-opt.el
index b6052d82061..c9dfa69aeb2 100644
--- a/lisp/emacs-lisp/byte-opt.el
+++ b/lisp/emacs-lisp/byte-opt.el
@@ -697,16 +697,11 @@ Same format as `byte-optimize--lexvars', with shared structure and contents.")
(let-vars nil))
(dolist (binding (car form))
(let (name expr)
- (cond ((consp binding)
- (setq name (car binding))
- (unless (symbolp name)
- (byte-compile-warn "let-bind nonvariable: `%S'" name))
- (setq expr (byte-optimize-form (cadr binding) nil)))
- ((symbolp binding)
- (setq name binding))
- (t (byte-compile-warn "malformed let binding: `%S'" binding)))
- (let* (
- (value (and (byte-optimize--substitutable-p expr)
+ (if (atom binding)
+ (setq name binding)
+ (setq name (car binding))
+ (setq expr (byte-optimize-form (cadr binding) nil)))
+ (let* ((value (and (byte-optimize--substitutable-p expr)
(list expr)))
(lexical (not (or (and (symbolp name)
(special-variable-p name))