diff --git a/pkgs/typed-racket-pkgs/typed-racket-more/typed/syntax/stx.rkt b/pkgs/typed-racket-pkgs/typed-racket-more/typed/syntax/stx.rkt index ce9e1a55..db3cc89b 100644 --- a/pkgs/typed-racket-pkgs/typed-racket-more/typed/syntax/stx.rkt +++ b/pkgs/typed-racket-pkgs/typed-racket-more/typed/syntax/stx.rkt @@ -38,7 +38,8 @@ [stx-list? (make-pred-ty (-Stx-Listof Univ))] [stx->list (-poly (a) (cl->* (-> (-Stx-Listof a) (-lst a)) - (-> (-Syntax Univ) (-val #f))))] + (-> (-Syntax Univ) + (Un (-val #f) (-lst (-Syntax Univ))))))] [stx-car (-poly (a b) (cl->* (-> (-Stx-Pairof a b) a) diff --git a/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/succeed/stx.rkt b/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/succeed/stx.rkt index 6a136c8e..8d22b70f 100644 --- a/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/succeed/stx.rkt +++ b/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/succeed/stx.rkt @@ -22,6 +22,10 @@ (ann (add1 (car (stx->list '(1 2 3)))) Positive-Index) (ann (stx->list #'(a b . (c d))) (Listof (Syntaxof Symbol))) (ann (stx->list (cons #'a #'(b . (c d)))) (Listof (Syntaxof Symbol))) +;; Make sure case-> type doesn't have intersecting domains with +;; incompatible result types +(ann (assert (stx->list (ann #'(a b c) (Syntaxof Any)))) + (Listof (Syntaxof Any))) (ann (stx-car #'(a b)) (Syntaxof 'a)) (ann (stx-cdr #'(a b)) (List (Syntaxof 'b)))