diff --git a/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/typecheck/tc-app/tc-app-list.rkt b/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/typecheck/tc-app/tc-app-list.rkt index 87b372c5..aa9596ba 100644 --- a/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/typecheck/tc-app/tc-app-list.rkt +++ b/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/typecheck/tc-app/tc-app-list.rkt @@ -79,14 +79,15 @@ [(tc-result1: (Listof: elem-ty)) (for ([i (in-syntax #'args)]) (tc-expr/check i (ret elem-ty))) - expected] + (ret (-lst elem-ty))] [(tc-result1: (List: (? (lambda (ts) (= (syntax-length #'args) (length ts))) ts))) - (for ([ac (in-syntax #'args)] - [exp (in-list ts)]) - (tc-expr/check ac (ret exp))) - expected] + (match (for/list ([ac (in-syntax #'args)] + [exp (in-list ts)]) + (tc-expr/check ac (ret exp))) + [(list (tc-result1: t) ...) + (ret (-Tuple t))])] [_ (let ([tys (stx-map tc-expr/t #'args)]) (ret (apply -lst* tys)))])) @@ -101,7 +102,7 @@ (tc-expr/check #'arg expected)] [(tc-result1: (List: ts)) (tc-expr/check #'arg (ret (-Tuple (reverse ts)))) - expected] + (ret (-Tuple ts))] [_ (match (single-value #'arg) [(tc-result1: (List: ts)) 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 84103e39..a7dec8b1 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 @@ -2519,6 +2519,16 @@ [tc-err (ann (lambda () (let ([my-values values]) (my-values))) (All (A ...) (-> (Values Symbol ... A))))] + + [tc-e (list 'x) + #:ret (ret (-Tuple (list -Symbol))) + #:expected (ret (-Tuple (list -Symbol)) -no-filter -no-obj)] + [tc-e (list 'y) + #:ret (ret (-lst -Symbol)) + #:expected (ret (-lst -Symbol) -no-filter -no-obj)] + [tc-e (reverse (list 'x 'y)) + #:ret (ret (-Tuple (list (-val 'y) (-val 'x)))) + #:expected (ret (-Tuple (list (-val 'y) (-val 'x))) -no-filter -no-obj)] ) (test-suite "tc-literal tests"