emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master 77ec251: Don't ignore lexically-bound variables in a defvar (bug#


From: Pip Cet
Subject: master 77ec251: Don't ignore lexically-bound variables in a defvar (bug#46912)
Date: Fri, 5 Mar 2021 04:17:27 -0500 (EST)

branch: master
commit 77ec25122c9a7855657de564101c9fe763b91013
Author: Pip Cet <pipcet@gmail.com>
Commit: Pip Cet <pipcet@gmail.com>

    Don't ignore lexically-bound variables in a defvar (bug#46912)
    
    * lisp/emacs-lisp/byte-opt.el (byte-optimize-form-code-walker): Walk
    the value form of a defvar.
---
 lisp/emacs-lisp/byte-opt.el | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/lisp/emacs-lisp/byte-opt.el b/lisp/emacs-lisp/byte-opt.el
index b51ba80..b332581 100644
--- a/lisp/emacs-lisp/byte-opt.el
+++ b/lisp/emacs-lisp/byte-opt.el
@@ -607,9 +607,12 @@ Same format as `byte-optimize--lexvars', with shared 
structure and contents.")
            (setq args (cddr args)))
          (cons fn (nreverse var-expr-list))))
 
-      (`(defvar ,(and (pred symbolp) name) . ,_)
-       (push name byte-optimize--dynamic-vars)
-       form)
+      (`(defvar ,(and (pred symbolp) name) . ,rest)
+       (let ((optimized-rest (and rest
+                                  (cons (byte-optimize-form (car rest) nil)
+                                        (cdr rest)))))
+         (push name byte-optimize--dynamic-vars)
+         `(defvar ,name . ,optimized-rest)))
 
       (`(,(pred byte-code-function-p) . ,exps)
        (cons fn (mapcar #'byte-optimize-form exps)))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]