diff options
Diffstat (limited to 'lisp')
| -rw-r--r-- | lisp/ChangeLog | 5 | ||||
| -rw-r--r-- | lisp/emacs-lisp/cconv.el | 15 |
2 files changed, 14 insertions, 6 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index d3760e4c626..02513660ff0 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,8 @@ | |||
| 1 | 2013-11-04 Nathan Trapuzzano <nbtrap@nbtrap.com> (tiny change) | ||
| 2 | |||
| 3 | * emacs-lisp/cconv.el (cconv-convert): Check form of let binding | ||
| 4 | (bug#15786). | ||
| 5 | |||
| 1 | 2013-11-04 Stefan Monnier <monnier@iro.umontreal.ca> | 6 | 2013-11-04 Stefan Monnier <monnier@iro.umontreal.ca> |
| 2 | 7 | ||
| 3 | * emacs-lisp/helpers.el: Move from helpers.el. Use lexical-binding. | 8 | * emacs-lisp/helpers.el: Move from helpers.el. Use lexical-binding. |
diff --git a/lisp/emacs-lisp/cconv.el b/lisp/emacs-lisp/cconv.el index f24e503fd6d..2a236b35e56 100644 --- a/lisp/emacs-lisp/cconv.el +++ b/lisp/emacs-lisp/cconv.el | |||
| @@ -289,12 +289,15 @@ places where they originally did not directly appear." | |||
| 289 | 289 | ||
| 290 | (dolist (binder binders) | 290 | (dolist (binder binders) |
| 291 | (let* ((value nil) | 291 | (let* ((value nil) |
| 292 | (var (if (not (consp binder)) | 292 | (var (if (not (consp binder)) |
| 293 | (prog1 binder (setq binder (list binder))) | 293 | (prog1 binder (setq binder (list binder))) |
| 294 | (setq value (cadr binder)) | 294 | (cl-assert (null (cdr (cdr binder))) nil |
| 295 | (car binder))) | 295 | "malformed let binding: `%s'" |
| 296 | (new-val | 296 | (prin1-to-string binder)) |
| 297 | (cond | 297 | (setq value (cadr binder)) |
| 298 | (car binder))) | ||
| 299 | (new-val | ||
| 300 | (cond | ||
| 298 | ;; Check if var is a candidate for lambda lifting. | 301 | ;; Check if var is a candidate for lambda lifting. |
| 299 | ((and (member (cons binder form) cconv-lambda-candidates) | 302 | ((and (member (cons binder form) cconv-lambda-candidates) |
| 300 | (progn | 303 | (progn |