Another error case.

svn: r11765
This commit is contained in:
Stevie Strickland 2008-09-15 21:52:02 +00:00
parent 32e0f2d318
commit 402deaafe5

View File

@ -79,18 +79,22 @@ improve method arity mismatch contract violation error messages?
"used in expression context"
define-stx))
(syntax-case define-stx ()
[(_ name)
(raise-syntax-error 'define/contract
"no contract or body"
define-stx)]
[(_ name contract-expr)
(raise-syntax-error 'define/contract
"no body after contract"
define-stx)]
[(_ name contract-expr expr)
(identifier? (syntax name))
(identifier? #'name)
(syntax/loc define-stx
(with-contract #:type definition name
([name (verify-contract 'define/contract contract-expr)])
(define name expr)))]
[(_ name contract-expr expr0 expr ...)
(identifier? (syntax name))
(identifier? #'name)
(raise-syntax-error 'define/contract
"multiple expressions after identifier and contract"
define-stx)]