From 68c83b2a54c1c032c54ef44d99f635eeef3f8694 Mon Sep 17 00:00:00 2001 From: Stevie Strickland Date: Fri, 12 Sep 2008 00:02:46 +0000 Subject: [PATCH] Check nested and non-nested define/contracts and how they interact. svn: r11665 original commit: 32d4b3463007fbc097b06e79eebc50906c6b3582 --- .../tests/mzscheme/contract-mzlib-test.ss | 47 ++++++++++++++++++- 1 file changed, 46 insertions(+), 1 deletion(-) diff --git a/collects/tests/mzscheme/contract-mzlib-test.ss b/collects/tests/mzscheme/contract-mzlib-test.ss index 44b73ae..7c3bac1 100644 --- a/collects/tests/mzscheme/contract-mzlib-test.ss +++ b/collects/tests/mzscheme/contract-mzlib-test.ss @@ -1621,7 +1621,52 @@ of the contract library does not change over time. x)) (eval '(require 'contract-test-suite-define1)))) - + (test/spec-failed + 'define/contract8 + '(let () + (define/contract (a n) + (-> number? number?) + (define/contract (b m) + (-> number? number?) + (+ m 1)) + (b (zero? n))) + (a 5)) + "a") + + (test/spec-failed + 'define/contract8 + '(let () + (define/contract (a n) + (-> number? number?) + (define/contract (b m) + (-> number? number?) + #t) + (b (add1 n))) + (a 5)) + "b") + + (test/spec-passed + 'define/contract9 + '(let () + (define/contract (f n) + (-> number? number?) + (+ n 1)) + (define/contract (g b m) + (-> boolean? number? number?) + (if b (f m) (f #t))) + (g #t 3))) + + (test/spec-failed + 'define/contract9 + '(let () + (define/contract (f n) + (-> number? number?) + (+ n 1)) + (define/contract (g b m) + (-> boolean? number? number?) + (if b (f m) (f #t))) + (g #f 3)) + "g") ; ;