From 16fd573e7b3a6b03b4aa79272ff8d79b01c5f953 Mon Sep 17 00:00:00 2001 From: Casey Klein Date: Sun, 20 Dec 2009 19:36:38 +0000 Subject: [PATCH] Fixed violation of the invariant introduced in r16504. svn: r17371 --- collects/redex/private/matcher-test.ss | 1 + collects/redex/private/matcher.ss | 5 ++--- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/collects/redex/private/matcher-test.ss b/collects/redex/private/matcher-test.ss index e0a7340f3d..6866eae34a 100644 --- a/collects/redex/private/matcher-test.ss +++ b/collects/redex/private/matcher-test.ss @@ -628,6 +628,7 @@ (test-ellipsis-binding '((number_1 number_2) ...) '((1 2))) (test-ellipsis-binding '((name x number_1) ...) '(1 2)) (test-ellipsis-binding '(((number_1 ...) (number_2 ...)) ...) '(((1) (2)))) + (test-ellipsis-binding '(number ... variable) '(1 x)) (cond [(= failures 0) diff --git a/collects/redex/private/matcher.ss b/collects/redex/private/matcher.ss index c3f00cca55..9fa3b0b499 100644 --- a/collects/redex/private/matcher.ss +++ b/collects/redex/private/matcher.ss @@ -1478,9 +1478,8 @@ before the pattern compiler is invoked. [else (let ([r-exp (car r-exps)]) (cond [(repeat? r-exp) - (i-loop - (cdr r-exps) - (append (repeat-empty-bindings r-exp) ribs))] + (append (repeat-empty-bindings r-exp) + (i-loop (cdr r-exps) ribs))] [else (loop (car r-exps) (i-loop (cdr r-exps) ribs))]))])))] [else ribs])))