diff options
| author | Nathan Trapuzzano | 2013-11-04 14:48:07 -0500 |
|---|---|---|
| committer | Stefan Monnier | 2013-11-04 14:48:07 -0500 |
| commit | 306e7308ba76ce1e1d1300aade7c79418b60ef4a (patch) | |
| tree | ec97bbc2f0805168b8b9a2047d5c25293ae32bc3 | |
| parent | 7f851ea43b45f0e56689b8cca72b0ef3e084bb49 (diff) | |
| download | emacs-306e7308ba76ce1e1d1300aade7c79418b60ef4a.tar.gz emacs-306e7308ba76ce1e1d1300aade7c79418b60ef4a.zip | |
* lisp/emacs-lisp/cconv.el (cconv-convert): Check form of let binding.
Fixes: debbugs:15786
| -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 |