]> code.delx.au - gnu-emacs/commitdiff
* lisp/emacs-lisp/cl-macs.el (cl-loop): Improve debug spec.
authorStefan Monnier <monnier@iro.umontreal.ca>
Fri, 10 Aug 2012 19:34:36 +0000 (15:34 -0400)
committerStefan Monnier <monnier@iro.umontreal.ca>
Fri, 10 Aug 2012 19:34:36 +0000 (15:34 -0400)
lisp/ChangeLog
lisp/emacs-lisp/cl-loaddefs.el
lisp/emacs-lisp/cl-macs.el

index bc270b8bdb25608fe1a68e84edf3f680c2856ae8..0295afa866f5937a5890a8736e46c9f76f965aa4 100644 (file)
@@ -1,3 +1,7 @@
+2012-08-10  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * emacs-lisp/cl-macs.el (cl-loop): Improve debug spec.
+
 2012-08-10  Chong Yidong  <cyd@gnu.org>
 
        * progmodes/python.el (python-shell-get-process-name): Don't mess
index 61475ce74b35ca35e903a64c07937ceb906aa55b..470ca17d3a0cc5da03a3ac676507986a1ca95284 100644 (file)
@@ -260,7 +260,7 @@ Remove from SYMBOL's plist the property PROPNAME and its value.
 ;;;;;;  cl-do cl-loop cl-return-from cl-return cl-block cl-etypecase
 ;;;;;;  cl-typecase cl-ecase cl-case cl-load-time-value cl-eval-when
 ;;;;;;  cl-destructuring-bind cl-function cl-defmacro cl-defun cl-gentemp
-;;;;;;  cl-gensym) "cl-macs" "cl-macs.el" "37a13242a811078a7ae71578eeed4254")
+;;;;;;  cl-gensym) "cl-macs" "cl-macs.el" "9676d5517e8b9246c09fe78984c68bef")
 ;;; Generated autoloads from cl-macs.el
 
 (autoload 'cl-gensym "cl-macs" "\
index 95aa1f18a0cd6df78d5b440b1d7d6400482561da..9a59aa0c6dbf10cd002450c2254c49a24d32a75b 100644 (file)
@@ -731,7 +731,21 @@ Valid clauses are:
   finally return EXPR, named NAME.
 
 \(fn CLAUSE...)"
-  (declare (debug (&rest &or symbolp form)))
+  (declare (debug (&rest &or
+                         ;; These are usually followed by a symbol, but it can
+                         ;; actually be any destructuring-bind pattern, which
+                         ;; would erroneously match `form'.
+                         [[&or "for" "as" "with" "and"] sexp]
+                         ;; These are followed by expressions which could
+                         ;; erroneously match `symbolp'.
+                         [[&or "from" "upfrom" "downfrom" "to" "upto" "downto"
+                               "above" "below" "by" "in" "on" "=" "across"
+                               "repeat" "while" "until" "always" "never"
+                               "thereis" "collect" "append" "nconc" "sum"
+                               "count" "maximize" "minimize" "if" "unless"
+                               "return"] form]
+                         ;; Simple default, which covers 99% of the cases.
+                         symbolp form)))
   (if (not (memq t (mapcar 'symbolp (delq nil (delq t (cl-copy-list loop-args))))))
       `(cl-block nil (while t ,@loop-args))
     (let ((cl--loop-args loop-args) (cl--loop-name nil) (cl--loop-bindings nil)