svn: r11766
This commit is contained in:
Robby Findler 2008-09-15 21:58:59 +00:00
parent ddb0efb40d
commit d165c586af
2 changed files with 18 additions and 0 deletions

View File

@ -129,6 +129,11 @@ improve method arity mismatch contract violation error messages?
[name
(identifier? (syntax name))
(syntax saved-id)]
[(set! id arg)
(raise-syntax-error 'provide/contract
"cannot set! a provide/contract variable"
stx
(syntax id))]
[(name . more)
(with-syntax ([app (datum->syntax stx '#%app)])
(syntax/loc stx (app saved-id . more)))]))))

View File

@ -5778,6 +5778,19 @@ so that propagation occurs.
(and (exn? x)
(regexp-match #rx"expected field name to be b, but found string?" (exn-message x)))))
(contract-error-test
#'(begin
(eval '(module pce7-bug scheme/base
(require scheme/contract)
(define x 1)
(provide/contract [x integer?])))
(eval '(module pce7-bug2 scheme/base
(require 'pce7-bug)
(set! x 5))))
(λ (x)
(and (exn? x)
(regexp-match #rx"cannot set!" (exn-message x)))))
(contract-eval `(,test 'pos guilty-party (with-handlers ((void values)) (contract not #t 'pos 'neg))))
(report-errs)