~ chicken-core (chicken-5) 7f8bf2b4daf264a438cbc3ea99230c88d9c66323
commit 7f8bf2b4daf264a438cbc3ea99230c88d9c66323
Author: felix <felix@call-with-current-continuation.org>
AuthorDate: Mon Nov 29 06:48:19 2010 -0500
Commit: felix <felix@call-with-current-continuation.org>
CommitDate: Mon Nov 29 06:48:19 2010 -0500
strip-syntax patch by sjamaan
diff --git a/expand.scm b/expand.scm
index 6e9dff45..22b6a618 100644
--- a/expand.scm
+++ b/expand.scm
@@ -111,7 +111,7 @@
(set! seen (cons (cons x vec) seen))
(do ((i 0 (fx+ i 1)))
((fx>= i len) vec)
- (##sys#setslot vec i (##sys#slot x i)))))
+ (##sys#setslot vec i (walk (##sys#slot x i))))))
(else x)))))
(define strip-syntax ##sys#strip-syntax)
diff --git a/tests/syntax-tests.scm b/tests/syntax-tests.scm
index 49aafcbd..a66ef763 100644
--- a/tests/syntax-tests.scm
+++ b/tests/syntax-tests.scm
@@ -165,6 +165,13 @@
(let ((a 2))
(t '(1 2 3 a) (foo a)))))
+;; Strip-syntax on vectors:
+(let-syntax
+ ((foo (syntax-rules ()
+ ((_)
+ '#(b)))))
+ (t '#(b) (foo)))
+
(define-syntax kw
(syntax-rules (baz)
((_ baz) "baz")
Trap