emacs-diffs
[Top][All Lists]
Advanced

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

master 73d169c7db: * lisp/emacs-lisp/cl-macs.el (cl-flet): Optimize a bi


From: Stefan Monnier
Subject: master 73d169c7db: * lisp/emacs-lisp/cl-macs.el (cl-flet): Optimize a bit more
Date: Fri, 2 Dec 2022 19:15:55 -0500 (EST)

branch: master
commit 73d169c7db36e8144b2766532181a57ff146bc11
Author: Stefan Monnier <monnier@iro.umontreal.ca>
Commit: Stefan Monnier <monnier@iro.umontreal.ca>

    * lisp/emacs-lisp/cl-macs.el (cl-flet): Optimize a bit more
    
    Also optimize the case where we use `cl-flet` to introduce a local alias.
---
 lisp/emacs-lisp/cl-macs.el | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el
index 43a2ed9205..95e78ceab6 100644
--- a/lisp/emacs-lisp/cl-macs.el
+++ b/lisp/emacs-lisp/cl-macs.el
@@ -2052,7 +2052,8 @@ info node `(cl) Function Bindings' for details.
     (dolist (binding bindings)
       (let ((var (make-symbol (format "--cl-%s--" (car binding))))
             (args-and-body (cdr binding)))
-        (if (and (= (length args-and-body) 1) (symbolp (car args-and-body)))
+        (if (and (= (length args-and-body) 1)
+                 (macroexp-copyable-p (car args-and-body)))
             ;; Optimize (cl-flet ((fun var)) body).
             (setq var (car args-and-body))
           (push (list var (if (= (length args-and-body) 1)



reply via email to

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