From 23798adf48652aa5bc49e0e56ac69fe81ed689d5 Mon Sep 17 00:00:00 2001 From: Robby Findler Date: Tue, 2 Aug 2005 04:12:48 +0000 Subject: [PATCH] , svn: r532 original commit: 461193f073190b8633bf908b887effb40ff50b55 --- collects/tests/mzscheme/contract-test.ss | 31 +++++++++++++++++++++--- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/collects/tests/mzscheme/contract-test.ss b/collects/tests/mzscheme/contract-test.ss index 5f626c8..cdfa51e 100644 --- a/collects/tests/mzscheme/contract-test.ss +++ b/collects/tests/mzscheme/contract-test.ss @@ -1386,23 +1386,23 @@ (eval '(require contract-test-suite6)) (eval '(define-struct (t s) ())))) - #; (test/spec-passed 'provide/contract6b '(parameterize ([current-namespace (make-namespace)]) (eval '(module contract-test-suite6b mzscheme (require (lib "contract.ss")) - (provide/contract (struct s_ ((a any/c)))) - (define-struct s_ (a)))) + (define-struct s_ (a)) + (provide/contract (struct s_ ((a any/c)))))) (eval '(require contract-test-suite6b)) (eval '(module contract-test-suite6b2 mzscheme (require contract-test-suite6b) (require (lib "contract.ss")) (define-struct (t_ s_) (b)) + (provide s_-a) (provide/contract (struct (t_ s_) ((a any/c) (b any/c)))))) (eval '(require contract-test-suite6b2)) (eval '(define-struct (u_ t_) ())) - (eval '(t_-a (make-u_ 1 2))))) + (eval '(s_-a (make-u_ 1 2))))) (test/spec-passed 'provide/contract7 @@ -1501,6 +1501,29 @@ [(struct register (name type)) (list name type)]))) (list 1 2)) + + (test/spec-passed + 'provide/contract14 + '(parameterize ([current-namespace (make-namespace)]) + (eval '(module test1 mzscheme + (require (lib "contract.ss")) + + (define-struct type (flags)) + (define-struct (type:ptr type) (type)) + + (provide/contract + (struct type + ([flags (listof string?)])) + + (struct (type:ptr type) + ([flags (listof string?)] [type type?]))))) + + (eval '(module test2 mzscheme + (require (lib "plt-match.ss")) + (require test1) + (match (make-type:ptr '() (make-type '())) + [(struct type:ptr (flags type)) #f]))) + (eval '(require test2)))) ;