From 16b04d0328d568fb9df126c3d1ca6cd7e5c4a68e Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Wed, 30 Jul 2008 19:45:59 +0000 Subject: [PATCH] fix syntax pattern-matching bug (PR 9643) svn: r10989 --- collects/scheme/private/stxcase.ss | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/collects/scheme/private/stxcase.ss b/collects/scheme/private/stxcase.ss index add6740146..f6261c0e16 100644 --- a/collects/scheme/private/stxcase.ss +++ b/collects/scheme/private/stxcase.ss @@ -227,15 +227,13 @@ [elem-did-var? (cdr clause)]) (let ([m (loop match-elem (stx-vector-ref e pos) cap)]) (and m - (if (null? (cdr p)) - m - (let ([body (vloop (cdr p) (add1 pos))]) - (and body - (if elem-did-var? - (if (null? body) - m - (append m body)) - body))))))))])))] + (let ([body (vloop (cdr p) (add1 pos))]) + (and body + (if elem-did-var? + (if (null? body) + m + (append m body)) + body)))))))])))] [(eq? i 'prefab) (and (stx-prefab? (vector-ref i 1) e) (loop (vector-ref i 2) (cdr (vector->list (struct->vector (syntax-e e)))) cap))]