From cc0f546825e0db9ff78f82c62615686aa480a133 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Gerd=20M=C3=B6llmann?= Date: Tue, 22 Aug 2023 10:16:40 +0200 Subject: [PATCH] ; 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) -- 2.39.5