From 204dee9ec50c0f82cf03601d5d8306359e1c0abc Mon Sep 17 00:00:00 2001 From: Robby Findler Date: Mon, 29 Oct 2007 21:07:43 +0000 Subject: [PATCH] improved contract libraries handling of #%app for provide/contract'd variables svn: r7590 original commit: 359196ae82ee061117fdb0bb1b1acb45b3f8b013 --- collects/tests/mzscheme/contract-test.ss | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/collects/tests/mzscheme/contract-test.ss b/collects/tests/mzscheme/contract-test.ss index 3abcba5..1779034 100644 --- a/collects/tests/mzscheme/contract-test.ss +++ b/collects/tests/mzscheme/contract-test.ss @@ -5211,6 +5211,22 @@ so that propagation occurs. (c:case-> (c:-> 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 #'(begin (eval '(module pce1-bug mzscheme