emacs-diffs
[Top][All Lists]
Advanced

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

master cc0f546825e: ; Reverse debug spec of cl-flet (bug#65344)


From: Gerd Moellmann
Subject: master cc0f546825e: ; Reverse debug spec of cl-flet (bug#65344)
Date: Tue, 22 Aug 2023 04:17:33 -0400 (EDT)

branch: master
commit cc0f546825e0db9ff78f82c62615686aa480a133
Author: Gerd Möllmann <gerd@gnu.org>
Commit: Gerd Möllmann <gerd@gnu.org>

    ; Reverse debug spec of cl-flet (bug#65344)
---
 lisp/emacs-lisp/cl-macs.el | 25 ++++++++++++++++---------
 1 file changed, 16 insertions(+), 9 deletions(-)

diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el
index 4cc43995c12..254a10781fe 100644
--- a/lisp/emacs-lisp/cl-macs.el
+++ b/lisp/emacs-lisp/cl-macs.el
@@ -2075,15 +2075,22 @@ info node `(cl) Function Bindings' for details.
 
 \(fn ((FUNC ARGLIST BODY...) ...) FORM...)"
   (declare (indent 1)
-           (debug ((&rest [&or (&define [&name symbolp "@cl-flet@"]
-                                        [&name [] gensym] ;Make it unique!
-                                        cl-lambda-list
-                                        cl-declarations-or-string
-                                        [&optional ("interactive" interactive)]
-                                        def-body)
-                               (&define [&name symbolp "@cl-flet@"]
-                                        [&name [] gensym] ;Make it unique!
-                                        def-form)])
+           (debug ((&rest [&or
+                           ;; This spec must come first so that a
+                           ;; binding of the form (FN FORM) is always
+                           ;; interpreted as FORM being a form
+                           ;; returning a function, instead of FORM
+                           ;; being a cl-lambda-list and FN returning
+                           ;; nil.
+                           (&define [&name symbolp "@cl-flet@"]
+                                    [&name [] gensym] ;Make it unique!
+                                    def-form)
+                           (&define [&name symbolp "@cl-flet@"]
+                                    [&name [] gensym] ;Make it unique!
+                                    cl-lambda-list
+                                    cl-declarations-or-string
+                                    [&optional ("interactive" interactive)]
+                                    def-body)])
                    cl-declarations body)))
   (let ((binds ()) (newenv macroexpand-all-environment))
     (dolist (binding bindings)



reply via email to

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