diff --git a/collects/tests/typed-racket/unit-tests/typecheck-tests.rkt b/collects/tests/typed-racket/unit-tests/typecheck-tests.rkt index db106b70..8dd3cfdc 100644 --- a/collects/tests/typed-racket/unit-tests/typecheck-tests.rkt +++ b/collects/tests/typed-racket/unit-tests/typecheck-tests.rkt @@ -1395,6 +1395,9 @@ (go first second third fourth fifth sixth seventh eighth ninth tenth)) (-val 1)] + + [tc-e (vector-append #(1) #(2)) + (-vec -Integer)] ) (test-suite "check-type tests" diff --git a/collects/typed-racket/infer/infer-unit.rkt b/collects/typed-racket/infer/infer-unit.rkt index 719aec1b..e9bc2f24 100644 --- a/collects/typed-racket/infer/infer-unit.rkt +++ b/collects/typed-racket/infer/infer-unit.rkt @@ -406,6 +406,9 @@ (cg t t*)))] [((HeterogenousVector: ts) (HeterogenousVector: ts*)) (cset-meet (cgen/list V X Y ts ts*) (cgen/list V X Y ts* ts))] + [((HeterogenousVector: ts) (Vector: s)) + (define ts* (map (λ _ s) ts)) ;; invariant, everything has to match + (cset-meet (cgen/list V X Y ts ts*) (cgen/list V X Y ts* ts))] [((HeterogenousVector: ts) (Sequence: (list t*))) (cset-meet* (for/list ([t (in-list ts)]) (cg t t*)))]