From 25ede3dc509dd7a707c3f9b6e2597afa418238ac Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Mon, 29 Mar 2010 20:39:42 +0000 Subject: [PATCH] fix reporting for some syntactic misuses of syntax-case svn: r18662 --- collects/scheme/private/stxcase-scheme.ss | 8 ++++---- collects/scheme/private/stxcase.ss | 2 +- collects/scheme/private/stxloc.ss | 8 ++++---- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/collects/scheme/private/stxcase-scheme.ss b/collects/scheme/private/stxcase-scheme.ss index 53eb04f0f1..be7fb0a3dc 100644 --- a/collects/scheme/private/stxcase-scheme.ss +++ b/collects/scheme/private/stxcase-scheme.ss @@ -29,7 +29,7 @@ (-define-syntax syntax-rules (lambda (stx) (syntax-case** syntax-rules #t stx () free-identifier=? - ((_ (k ...) ((keyword . pattern) template) ...) + ((sr (k ...) ((keyword . pattern) template) ...) (andmap identifier? (syntax->list (syntax (k ...)))) (begin (for-each (lambda (id) @@ -42,19 +42,19 @@ (syntax->list (syntax (keyword ...)))) (syntax/loc stx (lambda (x) - (syntax-case** _ #t x (k ...) free-identifier=? + (syntax-case** sr #t x (k ...) free-identifier=? ((_ . pattern) (syntax/loc x template)) ...)))))))) (-define-syntax syntax-id-rules (lambda (x) (syntax-case** syntax-id-rules #t x () free-identifier=? - ((_ (k ...) (pattern template) ...) + ((sidr (k ...) (pattern template) ...) (andmap identifier? (syntax->list (syntax (k ...)))) (syntax/loc x (make-set!-transformer (lambda (x) - (syntax-case** _ #t x (k ...) free-identifier=? + (syntax-case** sidr #t x (k ...) free-identifier=? (pattern (syntax/loc x template)) ...)))))))) diff --git a/collects/scheme/private/stxcase.ss b/collects/scheme/private/stxcase.ss index b5de2bfbef..5ca9410a52 100644 --- a/collects/scheme/private/stxcase.ss +++ b/collects/scheme/private/stxcase.ss @@ -273,7 +273,7 @@ (<= 2 (length (stx->list clause)) 3)) (raise-syntax-error (syntax-e who) - "bad clause" + "expected a clause containing a pattern, an optional guard expression, and an expression" clause))) clauses) (let ([patterns (map stx-car clauses)] diff --git a/collects/scheme/private/stxloc.ss b/collects/scheme/private/stxloc.ss index ee4f6bab8a..0fbb69fa96 100644 --- a/collects/scheme/private/stxloc.ss +++ b/collects/scheme/private/stxloc.ss @@ -10,15 +10,15 @@ (-define-syntax syntax-case* (lambda (stx) (syntax-case** #f #t stx () free-identifier=? - [(_ stxe kl id=? clause ...) - (syntax (syntax-case** _ #f stxe kl id=? clause ...))]))) + [(sc stxe kl id=? clause ...) + (syntax (syntax-case** sc #f stxe kl id=? clause ...))]))) ;; Regular syntax-case (-define-syntax syntax-case (lambda (stx) (syntax-case** #f #t stx () free-identifier=? - [(_ stxe kl clause ...) - (syntax (syntax-case** _ #f stxe kl free-identifier=? clause ...))]))) + [(sc stxe kl clause ...) + (syntax (syntax-case** sc #f stxe kl free-identifier=? clause ...))]))) (-define (relocate loc stx) (if (or (syntax-source loc)