summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBT Templeton <bpt@hcoop.net>2012-03-05 18:10:29 -0500
committerBT Templeton <bpt@hcoop.net>2012-03-05 18:10:29 -0500
commit663c5875f516ae9b36c6100dddd328de4c115147 (patch)
treefc681a3d74a79edc6c8b1c906502ae3821410fe5
parent5ddd9645c94f339f8795bf9b3ece8d518a8de004 (diff)
downloadguile-663c5875f516ae9b36c6100dddd328de4c115147.tar.gz
use #nil as default for elisp rest parameters
* module/langauge/elisp/compile-tree-il.scm (compile-lambda): Bind the rest parameter to `#nil' instead of `()' by default.
-rw-r--r--module/language/elisp/compile-tree-il.scm9
1 files changed, 8 insertions, 1 deletions
diff --git a/module/language/elisp/compile-tree-il.scm b/module/language/elisp/compile-tree-il.scm
index 293495495..1a4d00faa 100644
--- a/module/language/elisp/compile-tree-il.scm
+++ b/module/language/elisp/compile-tree-il.scm
@@ -326,7 +326,14 @@
(ensure-globals!
loc
dynamic-ids
- (let* ((tree-il (compile-expr `(progn ,@forms)))
+ (let* ((tree-il
+ (compile-expr
+ (if rest-id
+ `(let ((,rest-id (if ,rest-id
+ ,rest-id
+ nil)))
+ ,@forms)
+ `(progn ,@forms))))
(full-body
(if (null? dynamic)
tree-il