* lisp/subr.el (dolist): Don't bind VAR in RESULT.

This commit is contained in:
Stefan Monnier 2012-11-09 15:45:10 -05:00
parent 6858633a9c
commit da03ef8a9d
3 changed files with 8 additions and 3 deletions

View file

@ -28,6 +28,11 @@ so we will look at it and add it to the manual.
* Changes in Specialized Modes and Packages in Emacs 24.4
* New Modes and Packages in Emacs 24.4
* Incompatible Lisp Changes in Emacs 24.4
** `dolist' in lexical-binding mode does not bind VAR in RESULT any more.
VAR was bound to nil which was not tremendously useful and just lead to
spurious warnings about an unused var.
* Lisp changes in Emacs 24.4
** Docstrings can be made dynamic by adding a `dynamic-docstring-function'

View file

@ -1,5 +1,7 @@
2012-11-09 Stefan Monnier <monnier@iro.umontreal.ca>
* subr.el (dolist): Don't bind VAR in RESULT.
* emacs-lisp/advice.el: Miscellaneous cleanup. Use lexical-binding.
(fset, documentation): Don't save real def since we don't advise.
(ad-do-advised-functions): Remove problematic `result-form'.

View file

@ -222,9 +222,7 @@ Then evaluate RESULT to get return value, default nil.
(let ((,(car spec) (car ,temp)))
,@body
(setq ,temp (cdr ,temp))))
,@(if (cdr (cdr spec))
;; FIXME: This let often leads to "unused var" warnings.
`((let ((,(car spec) nil)) ,@(cdr (cdr spec))))))
,@(cdr (cdr spec)))
`(let ((,temp ,(nth 1 spec))
,(car spec))
(while ,temp