From 393d72f153af0f826183b763d2f5d1e4e7d89c6a Mon Sep 17 00:00:00 2001 From: Robby Findler Date: Thu, 7 Jan 2016 22:12:27 -0600 Subject: [PATCH] add test case that makes sure we preserve chaperone-of for contract-out functions --- .../tests/racket/contract/contract-out.rkt | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/pkgs/racket-test/tests/racket/contract/contract-out.rkt b/pkgs/racket-test/tests/racket/contract/contract-out.rkt index 3f467e29f5..19d0382670 100644 --- a/pkgs/racket-test/tests/racket/contract/contract-out.rkt +++ b/pkgs/racket-test/tests/racket/contract/contract-out.rkt @@ -1050,6 +1050,24 @@ (f #:x 1)))))) (eval '(dynamic-require ''provide/contract54-m2 'a))) '((1 #t #\x 0) (1 #f #\a 0))) + + (test/spec-passed/result + 'provide/contract55 + '(let () + (eval '(module provide/contract55-m1 racket/base + (require racket/contract/base) + (provide + (contract-out + [an-s s?] + [s-x (-> s? integer?)])) + (struct s (x)) + (define an-s (s 5)))) + (eval '(module provide/contract55-m2 racket/base + (require 'provide/contract55-m1) + (provide a) + (define a (s-x (chaperone-struct an-s s-x (λ (s x) x)))))) + (eval '(dynamic-require ''provide/contract55-m2 'a))) + '5) (contract-error-test 'contract-error-test8