Fix internal error for vector type-checking
If multiple values were expected and not provided
when type-checking a vector expression, TR would throw
an internal error.
Thanks to Pierpaolo for the report!
(cherry picked from commit 29bce22d0b
)
This commit is contained in:
parent
c4c85ce9c8
commit
cf8f806db7
13
collects/tests/typed-racket/fail/internal-vector-error.rkt
Normal file
13
collects/tests/typed-racket/fail/internal-vector-error.rkt
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
#;
|
||||||
|
(exn:pred #rx"expected 2 values, but got 1")
|
||||||
|
#lang typed/racket
|
||||||
|
|
||||||
|
;; This test ensures that the following snippet doesn't
|
||||||
|
;; result in an internal error.
|
||||||
|
;;
|
||||||
|
;; see
|
||||||
|
;; http://lists.racket-lang.org/dev/archive/2013-January/011614.html
|
||||||
|
|
||||||
|
(: f (-> (Values String (Vector Integer Integer))))
|
||||||
|
(define (f) (vector 1 2))
|
||||||
|
|
|
@ -136,4 +136,4 @@
|
||||||
(ret (make-HeterogeneousVector
|
(ret (make-HeterogeneousVector
|
||||||
(for/list ((e (in-syntax #'(args ...))))
|
(for/list ((e (in-syntax #'(args ...))))
|
||||||
(generalize (tc-expr/t e)))))]
|
(generalize (tc-expr/t e)))))]
|
||||||
[_ (int-err "bad expected: ~a" expected)])))
|
[_ (ret Err)])))
|
||||||
|
|
Loading…
Reference in New Issue
Block a user