Fix tc-apply to correctly generate expected ValueDots filters.

Closes PR 13649.

original commit: 76de4d3cca494861e42a14cb84f28fa820c9214b
This commit is contained in:
Eric Dobson 2013-04-03 22:04:50 -07:00
parent 33fda17516
commit d425ebda53
2 changed files with 6 additions and 1 deletions

View File

@ -1630,6 +1630,10 @@
[tc-e
((inst filter Any Symbol) symbol? null)
(-lst -Symbol)]
[tc-e/t (ann (plambda: (A B ...) ((a : A) b : B ... B)
(apply (inst values A B ... B) a b))
(All (A B ...) (A B ... -> (values A B ... B))))
(-polydots (a b) ((list a) (b b) . ->... . (make-ValuesDots (list (-result a)) b 'b)))]
)
(test-suite
"check-type tests"

View File

@ -24,7 +24,8 @@
(define (do-ret t)
(match t
[(Values: (list (Result: ts _ _) ...)) (ret ts)]
[(ValuesDots: (list (Result: ts _ _) ...) dty dbound) (ret ts (for/list ([t ts]) (-FS null null)) (for/list ([t ts]) (make-Empty)) dty dbound)]
[(ValuesDots: (list (Result: ts _ _) ...) dty dbound)
(ret ts (for/list ([t ts]) (make-NoFilter)) (for/list ([t ts]) (make-Empty)) dty dbound)]
[_ (int-err "do-ret fails: ~a" t)]))
(define (tc/apply f args)