diff options
author | Mattias EngdegÄrd <mattiase@acm.org> | 2021-07-29 17:20:41 +0200 |
---|---|---|
committer | Mattias EngdegÄrd <mattiase@acm.org> | 2021-07-30 09:54:30 +0200 |
commit | ab9c06449df4c4c58d586573003de419199cc1be (patch) | |
tree | d06b4f3d6a700e7fc6e346ca8898b05a5c646c30 /lisp/emacs-lisp/byte-opt.el | |
parent | dc9e2a1749c892cdf52a01414bee97e9a2245ca5 (diff) | |
download | emacs-ab9c06449df4c4c58d586573003de419199cc1be.tar.gz emacs-ab9c06449df4c4c58d586573003de419199cc1be.tar.bz2 emacs-ab9c06449df4c4c58d586573003de419199cc1be.zip |
Move warnings about bad let-bindings from source optimiser to cconv
* lisp/emacs-lisp/byte-opt.el (byte-optimize-let-form): Move warnings...
* lisp/emacs-lisp/cconv.el (cconv-convert): ...here, which is an
overall better place (closer to the front-end).
Diffstat (limited to 'lisp/emacs-lisp/byte-opt.el')
-rw-r--r-- | lisp/emacs-lisp/byte-opt.el | 15 |
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)) |