emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] /srv/bzr/emacs/trunk r109557: * lisp/emacs-lisp/cl-macs.el


From: Stefan Monnier
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r109557: * lisp/emacs-lisp/cl-macs.el (cl-loop): Improve debug spec.
Date: Fri, 10 Aug 2012 15:34:36 -0400
User-agent: Bazaar (2.5.0)

------------------------------------------------------------
revno: 109557
committer: Stefan Monnier <address@hidden>
branch nick: trunk
timestamp: Fri 2012-08-10 15:34:36 -0400
message:
  * lisp/emacs-lisp/cl-macs.el (cl-loop): Improve debug spec.
modified:
  lisp/ChangeLog
  lisp/emacs-lisp/cl-loaddefs.el
  lisp/emacs-lisp/cl-macs.el
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2012-08-10 16:46:07 +0000
+++ b/lisp/ChangeLog    2012-08-10 19:34:36 +0000
@@ -1,3 +1,7 @@
+2012-08-10  Stefan Monnier  <address@hidden>
+
+       * emacs-lisp/cl-macs.el (cl-loop): Improve debug spec.
+
 2012-08-10  Chong Yidong  <address@hidden>
 
        * progmodes/python.el (python-shell-get-process-name): Don't mess

=== modified file 'lisp/emacs-lisp/cl-loaddefs.el'
--- a/lisp/emacs-lisp/cl-loaddefs.el    2012-08-07 04:50:55 +0000
+++ b/lisp/emacs-lisp/cl-loaddefs.el    2012-08-10 19:34:36 +0000
@@ -260,7 +260,7 @@
 ;;;;;;  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" "\

=== modified file 'lisp/emacs-lisp/cl-macs.el'
--- a/lisp/emacs-lisp/cl-macs.el        2012-08-06 19:53:45 +0000
+++ b/lisp/emacs-lisp/cl-macs.el        2012-08-10 19:34:36 +0000
@@ -731,7 +731,21 @@
   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)


reply via email to

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