From 871f8a5ca39c1a5386a9c036c5e8a4f87318ab5c Mon Sep 17 00:00:00 2001 From: Eric Dobson Date: Tue, 13 May 2014 21:00:50 -0700 Subject: [PATCH] Abstract over dotted type in values. original commit: f3fa035751dcf6cedac451f752211b65840df07a --- .../typed-racket/typecheck/tc-metafunctions.rkt | 3 ++- .../tests/typed-racket/unit-tests/typecheck-tests.rkt | 10 ++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/typecheck/tc-metafunctions.rkt b/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/typecheck/tc-metafunctions.rkt index cae1b6a3..8920f33e 100644 --- a/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/typecheck/tc-metafunctions.rkt +++ b/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/typecheck/tc-metafunctions.rkt @@ -80,7 +80,8 @@ (-result (abstract-type arg-names keys t) (abstract-filter arg-names keys f) (abstract-object arg-names keys o))) - dty dbound)] + (abstract-type arg-names keys dty) + dbound)] [(tc-results: ts fs os) (make-Values (for/list ([t (in-list ts)] [f (in-list fs)] [o (in-list os)]) diff --git a/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/unit-tests/typecheck-tests.rkt b/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/unit-tests/typecheck-tests.rkt index 51063352..8e54a7f0 100644 --- a/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/unit-tests/typecheck-tests.rkt +++ b/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/unit-tests/typecheck-tests.rkt @@ -2959,6 +2959,16 @@ #:expected (ret (-polydots (a) (->... (list) (a a) (-values-dots (list) a 'a))))] + [tc-e + (tr:lambda xs (tr:lambda (x) (apply values (map (tr:lambda (z) (tr:lambda (y) (symbol? x))) xs)))) + #:ret + (ret (-polydots (a ...) + (->... (list) (a a) (-values (list + (t:-> Univ (-values-dots (list) (t:-> Univ -Boolean : (-FS (-filter -Symbol (list 1 0)) -top)) 'a))))))) + #:expected + (ret (-polydots (a ...) + (->... (list) (a a) (-values (list + (t:-> Univ (-values-dots (list) (t:-> Univ -Boolean : (-FS (-filter -Symbol (list 1 0)) -top)) 'a)))))))] ) (test-suite "tc-literal tests"