PR 9760
svn: r11766
This commit is contained in:
parent
ddb0efb40d
commit
d165c586af
|
@ -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)))]))))
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue
Block a user