improved contract libraries handling of #%app for provide/contract'd variables
svn: r7590 original commit: 359196ae82ee061117fdb0bb1b1acb45b3f8b013
This commit is contained in:
parent
d0c009085d
commit
204dee9ec5
|
@ -5211,6 +5211,22 @@ so that propagation occurs.
|
||||||
(c:case-> (c:-> integer? integer?)
|
(c:case-> (c:-> integer? integer?)
|
||||||
(c:-> integer? integer? integer?))))))
|
(c:-> integer? integer? integer?))))))
|
||||||
|
|
||||||
|
;; tests that contracts pick up the #%app from the context
|
||||||
|
;; instead of always using the mzscheme #%app.
|
||||||
|
(test/spec-passed
|
||||||
|
'provide/contract25
|
||||||
|
'(begin
|
||||||
|
(eval '(module provide/contract25a mzscheme
|
||||||
|
(require (lib "contract.ss"))
|
||||||
|
(provide/contract [seventeen integer?])
|
||||||
|
(define seventeen 17)))
|
||||||
|
(eval '(module provide/contract25b mzscheme
|
||||||
|
(require provide/contract25a)
|
||||||
|
(let-syntax ([#%app (syntax-rules ()
|
||||||
|
[(#%app e ...) (list e ...)])])
|
||||||
|
(seventeen 18))))
|
||||||
|
(eval '(require provide/contract25b))))
|
||||||
|
|
||||||
(contract-error-test
|
(contract-error-test
|
||||||
#'(begin
|
#'(begin
|
||||||
(eval '(module pce1-bug mzscheme
|
(eval '(module pce1-bug mzscheme
|
||||||
|
|
Loading…
Reference in New Issue
Block a user