Skip to content

Commit 2c52f70

Browse files
authored
repair the type for vector->immutable-vector (#1228)
closes #1131
1 parent efc3545 commit 2c52f70

File tree

2 files changed

+7
-2
lines changed

2 files changed

+7
-2
lines changed

typed-racket-lib/typed-racket/base-env/base-env.rkt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -893,7 +893,9 @@
893893
(list -vec-len))]
894894
[vector (-poly (a) (->* (list) a (-mvec a)))]
895895
[vector-immutable (-poly (a) (->* (list) a (-ivec a)))]
896-
[vector->immutable-vector (-poly (a) (-> (-vec a) (-ivec a)))]
896+
[vector->immutable-vector (-poly (a)
897+
(cl-> [((-vec a)) (-ivec a)]
898+
[(-VectorTop) (-ivec Univ)]))]
897899
[vector-fill! (-poly (a) (-> (-vec a) a -Void))]
898900
[vector-argmax (-poly (a) (-> (-> a -Real) (-vec a) a))]
899901
[vector-argmin (-poly (a) (-> (-> a -Real) (-vec a) a))]

typed-racket-test/unit-tests/typecheck-tests.rkt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1388,7 +1388,10 @@
13881388
(if (symbol? x) 'x #f)) ((U Symbol String) -> (U Symbol #f) : Symbol))
13891389
(list "three" 'four 'five "six"))
13901390
(-lst -Symbol)]
1391-
1391+
[tc-e (let ([x : Any '#()])
1392+
(and (vector? x)
1393+
(vector->immutable-vector x)))
1394+
(t:Un (-ivec Univ) (-val #f))]
13921395

13931396
[tc-e (vector-filter path-string? (ann (vector "a" 4 5 "b") (Mutable-Vectorof Any)))
13941397
(-mvec (t:Un -Path -String))]

0 commit comments

Comments
 (0)