From cd081cf9c4d8822d28eaa91b677832033d8a3073 Mon Sep 17 00:00:00 2001 From: Sam Tobin-Hochstadt Date: Tue, 9 Oct 2012 12:06:48 -0400 Subject: [PATCH] Handle contract generation for recursive class types. original commit: 6945c5bfb1a807e1e2d4b6cdf50db83b0623ad1d --- collects/typed-racket/private/type-contract.rkt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/collects/typed-racket/private/type-contract.rkt b/collects/typed-racket/private/type-contract.rkt index c417b3aa..036a4fb4 100644 --- a/collects/typed-racket/private/type-contract.rkt +++ b/collects/typed-racket/private/type-contract.rkt @@ -299,6 +299,8 @@ #,(contract-kind->keyword (current-contract-kind)))]) n*))))] [(Value: #f) #'false/c] + [(Instance: (? Mu? t)) + (t->c (make-Instance (resolve-once t)))] [(Instance: (Class: _ _ (list (list name fcn) ...))) (set-impersonator!) (with-syntax ([(fcn-cnts ...) (for/list ([f fcn]) (t->c/fun f #:method #t))]