Ticket #806: 0001-Add-test-case-for-DSSSL-extended-lambda-list-hygiene.patch

File 0001-Add-test-case-for-DSSSL-extended-lambda-list-hygiene.patch, 1.3 KB (added by Moritz Heidkamp, 12 years ago)
  • expand.scm

    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  
    359359                                ,(map (lambda (k)
    360360                                        (let ([s (car k)])
    361361                                          `(,s (##sys#get-keyword
    362                                                 ',(->keyword (##sys#strip-syntax s)) ,rvar
     362                                                (##core#quote ,(->keyword (##sys#strip-syntax s))) ,rvar
    363363                                                ,@(if (pair? (cdr k))
    364364                                                      `((,%lambda () ,@(cdr k)))
    365365                                                      '())))))
  • tests/syntax-tests.scm

    diff --git a/tests/syntax-tests.scm b/tests/syntax-tests.scm
    index 82a3850..d88933f 100644
    a b take 
    974974  (import (prefix chicken c/) (prefix scheme s/))
    975975  (c/case-lambda ((a) a))
    976976  (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)))