Handle contract generation for recursive class types.

original commit: 6945c5bfb1a807e1e2d4b6cdf50db83b0623ad1d
This commit is contained in:
Sam Tobin-Hochstadt 2012-10-09 12:06:48 -04:00
parent cf1ae8f3b1
commit cd081cf9c4

View File

@ -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))]