Add promise support to type->contract.

Closes PR13024.
This commit is contained in:
Eric Dobson 2012-08-15 20:51:35 -07:00 committed by Sam Tobin-Hochstadt
parent a408d6bfbf
commit 09d32d35e0
2 changed files with 5 additions and 1 deletions

View File

@ -12,7 +12,8 @@
(define (contract-tests) (define (contract-tests)
(test-suite "Contract Tests" (test-suite "Contract Tests"
(t (-Number . -> . -Number)))) (t (-Number . -> . -Number))
(t (-Promise -Number))))
(define-go contract-tests) (define-go contract-tests)
(provide contract-tests) (provide contract-tests)

View File

@ -199,6 +199,9 @@
#`(box/c #,(t->c t))] #`(box/c #,(t->c t))]
[(Pair: t1 t2) [(Pair: t1 t2)
#`(cons/c #,(t->c t1) #,(t->c t2))] #`(cons/c #,(t->c t1) #,(t->c t2))]
[(Promise: t)
(when flat? (exit (fail)))
#`(promise/c #,(t->c t))]
[(Opaque: p? cert) [(Opaque: p? cert)
#`(flat-named-contract (quote #,(syntax-e p?)) #,(cert p?))] #`(flat-named-contract (quote #,(syntax-e p?)) #,(cert p?))]
[(F: v) (cond [(assoc v (vars)) => second] [(F: v) (cond [(assoc v (vars)) => second]