Merge pull request #269 from jsmaniac/fix-promise-provide
Fixes GH issue #268 “Can't provide promise for polymorphic struct”.
This commit is contained in:
commit
ad88f45bbe
|
@ -166,6 +166,7 @@
|
|||
typed-racket/utils/opaque-object
|
||||
typed-racket/utils/evt-contract
|
||||
typed-racket/utils/sealing-contract
|
||||
typed-racket/utils/promise-not-name-contract
|
||||
racket/sequence
|
||||
racket/contract/parametric))
|
||||
|
||||
|
|
|
@ -15,7 +15,8 @@
|
|||
racket/async-channel
|
||||
racket/sequence
|
||||
racket/promise
|
||||
"../../utils/evt-contract.rkt")
|
||||
"../../utils/evt-contract.rkt"
|
||||
"../../utils/promise-not-name-contract.rkt")
|
||||
racket/contract
|
||||
racket/async-channel)
|
||||
|
||||
|
@ -153,7 +154,7 @@
|
|||
((set/sc (#:covariant #:chaperone)) set/c #:flat)
|
||||
((vector/sc . (#:invariant)) vector/c #:chaperone)
|
||||
((vectorof/sc (#:invariant)) vectorof #:chaperone)
|
||||
((promise/sc (#:covariant)) (λ (x) (and/c (promise/c x) (not/c promise/name?))) #:chaperone)
|
||||
((promise/sc (#:covariant)) promise-not-name/c #:chaperone)
|
||||
((syntax/sc (#:covariant #:flat)) syntax/c #:flat)
|
||||
((hash/sc (#:invariant #:flat) (#:invariant)) hash/c #:chaperone)
|
||||
((box/sc (#:invariant)) box/c #:chaperone)
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
#lang racket/base
|
||||
|
||||
(require racket/contract
|
||||
racket/promise)
|
||||
(provide promise-not-name/c)
|
||||
(define (promise-not-name/c x) (and/c (promise/c x) (not/c promise/name?)))
|
|
@ -0,0 +1,5 @@
|
|||
#lang typed/racket
|
||||
|
||||
(struct (A) s ([f : Any]))
|
||||
(define p (delay (s "a")))
|
||||
(provide p)
|
Loading…
Reference in New Issue
Block a user