Make (Set a) a subtype of (Sequenceof a).
Closes PR13485. Closes PR12615. original commit: 4f9f00680ee560ee59cddd5bdb3fb737c6bcc7f1
This commit is contained in:
parent
44d6d411cf
commit
19a05ebadc
3
collects/tests/typed-racket/succeed/for-set.rkt
Normal file
3
collects/tests/typed-racket/succeed/for-set.rkt
Normal file
|
@ -0,0 +1,3 @@
|
|||
#lang typed/racket
|
||||
(for ([i (set 1 2 3)])
|
||||
(displayln i))
|
|
@ -78,6 +78,7 @@
|
|||
|
||||
[(-val 6) -Number]
|
||||
[(-val 'hello) -Symbol]
|
||||
[(-set -Number) (make-Sequence (list -Number))]
|
||||
[((Un -Symbol -Number) . -> . -Number) (-> -Number -Number)]
|
||||
[(-poly (t) (-> -Number t)) (-mu t (-> -Number t))]
|
||||
;; not subtypes
|
||||
|
|
|
@ -474,6 +474,8 @@
|
|||
(cg t t*)]
|
||||
[((Hashtable: k v) (Sequence: (list k* v*)))
|
||||
(cgen/list V X Y (list k v) (list k* v*))]
|
||||
[((Set: t) (Sequence: (list t*)))
|
||||
(cg t t*)]
|
||||
;; ListDots can be below a Listof
|
||||
;; must be above mu unfolding
|
||||
[((ListDots: s-dty dbound) (Listof: t-elem))
|
||||
|
|
|
@ -299,6 +299,8 @@
|
|||
(subtype* A0 -Nat t*)]
|
||||
[((Hashtable: k v) (Sequence: (list k* v*)))
|
||||
(subtypes* A0 (list k v) (list k* v*))]
|
||||
[((Set: t) (Sequence: (list t*)))
|
||||
(subtype* A0 t t*)]
|
||||
;; special-case for case-lambda/union with only one argument
|
||||
[((Function: arr1) (Function: (list arr2)))
|
||||
(when (null? arr1) (fail! s t))
|
||||
|
|
Loading…
Reference in New Issue
Block a user