From b309ced851641cb3c0a328ed78ef86c284f256a6 Mon Sep 17 00:00:00 2001 From: Stevie Strickland Date: Fri, 12 Sep 2008 18:17:40 +0000 Subject: [PATCH] Appropriately check the context. svn: r11693 --- collects/scheme/private/contract.ss | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/collects/scheme/private/contract.ss b/collects/scheme/private/contract.ss index 825cae14d1..51f769ae63 100644 --- a/collects/scheme/private/contract.ss +++ b/collects/scheme/private/contract.ss @@ -79,6 +79,10 @@ improve method arity mismatch contract violation error messages? ;; defines `id' with `contract'; initially binding ;; it to the result of `expr'. These variables may not be set!'d. (define-syntax (define/contract define-stx) + (when (eq? (syntax-local-context) 'expression) + (raise-syntax-error 'define/contract + "used in expression context" + define-stx)) (syntax-case define-stx () [(_ name contract-expr) (raise-syntax-error 'define/contract @@ -185,6 +189,10 @@ improve method arity mismatch contract violation error messages? (car args))]))) (define-syntax (with-contract stx) + (when (eq? (syntax-local-context) 'expression) + (raise-syntax-error 'with-contract + "used in expression context" + stx)) (syntax-case stx () [(_ blame (arg ...) body0 body ...) (identifier? (syntax blame))