From 602d88835b6ec8ae38ae4336191371cdf9559a5e Mon Sep 17 00:00:00 2001
From: Moritz Heidkamp <moritz@twoticketsplease.de>
Date: Sun, 25 Mar 2012 16:43:44 +0200
Subject: [PATCH] Add test case for DSSSL extended lambda list hygiene
This also includes one of the hygiene issues but the test still fails.
---
expand.scm | 2 +-
tests/syntax-tests.scm | 6 ++++++
2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/expand.scm b/expand.scm
index feca02a..401234d 100644
a
|
b
|
|
359 | 359 | ,(map (lambda (k) |
360 | 360 | (let ([s (car k)]) |
361 | 361 | `(,s (##sys#get-keyword |
362 | | ',(->keyword (##sys#strip-syntax s)) ,rvar |
| 362 | (##core#quote ,(->keyword (##sys#strip-syntax s))) ,rvar |
363 | 363 | ,@(if (pair? (cdr k)) |
364 | 364 | `((,%lambda () ,@(cdr k))) |
365 | 365 | '()))))) |
diff --git a/tests/syntax-tests.scm b/tests/syntax-tests.scm
index 82a3850..d88933f 100644
a
|
b
|
take |
974 | 974 | (import (prefix chicken c/) (prefix scheme s/)) |
975 | 975 | (c/case-lambda ((a) a)) |
976 | 976 | (c/ensure s/even? 2)) |
| 977 | |
| 978 | (module dsssl-extended-lambda-list-hygiene |
| 979 | () |
| 980 | (import (prefix chicken c/) (prefix scheme s/)) |
| 981 | (s/define (foo #!optional bar #!rest qux #!key baz) |
| 982 | (s/list bar baz qux))) |