From 5415cca336b37a745cf8dc5959d36956de8cfa34 Mon Sep 17 00:00:00 2001 From: Robby Findler Date: Thu, 13 Aug 2020 10:29:33 -0500 Subject: [PATCH] add a contract to places that use the #:kind argument (including defthing) closes #259 --- scribble-lib/scribble/private/manual-proc.rkt | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/scribble-lib/scribble/private/manual-proc.rkt b/scribble-lib/scribble/private/manual-proc.rkt index 6b7ae258..0611ae04 100644 --- a/scribble-lib/scribble/private/manual-proc.rkt +++ b/scribble-lib/scribble/private/manual-proc.rkt @@ -17,6 +17,7 @@ "on-demand.rkt" scheme/string scheme/list + racket/contract (for-syntax racket/base syntax/parse) (for-label racket/base @@ -126,10 +127,12 @@ [(_ v) #'(racketblock0 v)])) (begin-for-syntax - (define-splicing-syntax-class kind-kw - #:description "#:kind keyword" - (pattern (~optional (~seq #:kind kind) - #:defaults ([kind #'#f])))) + (define-splicing-syntax-class kind-kw + #:attributes (kind) ;; Expr[String/#f] + #:description "#:kind keyword" + (pattern (~optional (~seq #:kind k)) + #:declare k (expr/c #'(or/c string? #f) #:name "#:kind argument") + #:with kind #'(~? k.c #f))) (define-splicing-syntax-class value-kw #:description "#:value keyword"