From 6b9627e9f012d2abb0172f1fce38cab13f357c77 Mon Sep 17 00:00:00 2001 From: Robby Findler Date: Thu, 2 Mar 2006 02:48:40 +0000 Subject: [PATCH] fixed PR 7927 svn: r2341 original commit: 873e71a9dd99e2850b717b69d40ed4c1c467c593 --- collects/tests/mzscheme/contract-test.ss | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/collects/tests/mzscheme/contract-test.ss b/collects/tests/mzscheme/contract-test.ss index 0272e46..e35d2b0 100644 --- a/collects/tests/mzscheme/contract-test.ss +++ b/collects/tests/mzscheme/contract-test.ss @@ -3115,6 +3115,24 @@ 1 'pos 'neg))) + + (test/spec-passed + 'struct/c3 + '(let () + (define-struct s (a b)) + (contract (struct/c s integer? (struct/c s integer? boolean?)) + (make-s 1 (make-s 2 #t)) + 'pos + 'neg))) + + (test/pos-blame + 'struct/c3 + '(let () + (define-struct s (a b)) + (contract (struct/c s integer? (struct/c s integer? boolean?)) + (make-s 1 (make-s 2 3)) + 'pos + 'neg))) (test/spec-passed 'recursive-contract1 @@ -3162,6 +3180,10 @@ (test #t flat-contract? (and/c number? integer?)) (test #t flat-contract? (and/c (flat-contract number?) (flat-contract integer?))) + (test #t flat-contract? (let () + (define-struct s (a b)) + (struct/c s any/c any/c))) + (test-flat-contract '(and/c number? integer?) 1 3/2) (test-flat-contract '(not/c integer?) #t 1)