From 9cf9897b165db6515debc8dc6417addec7b1c154 Mon Sep 17 00:00:00 2001 From: Robby Findler Date: Fri, 8 Jul 2016 15:36:44 -0500 Subject: [PATCH] raise a syntax error uses of keywords in case-> --- racket/collects/racket/contract/private/case-arrow.rkt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/racket/collects/racket/contract/private/case-arrow.rkt b/racket/collects/racket/contract/private/case-arrow.rkt index af78648f14..a3c181fd24 100644 --- a/racket/collects/racket/contract/private/case-arrow.rkt +++ b/racket/collects/racket/contract/private/case-arrow.rkt @@ -44,7 +44,13 @@ [(-> doms ... #:rest rst rng) (values #'(doms ...) #'rst (parse-rng stx #'rng))] [(-> doms ... rng) - (values #'(doms ...) #f (parse-rng stx #'rng))] + (begin + (for ([x (in-list (append (syntax->list #'(doms ...)) + (list #'rng)))]) + (when (keyword? (syntax-e x)) + (raise-syntax-error 'case-> "does not accept keywords" + stx x))) + (values #'(doms ...) #f (parse-rng stx #'rng)))] [(x y ...) (raise-syntax-error #f "expected ->" stx #'x)] [_