diff --git a/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/types/subtype.rkt b/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/types/subtype.rkt index 253c34eeef..2f9b5276ff 100644 --- a/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/types/subtype.rkt +++ b/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/types/subtype.rkt @@ -565,7 +565,9 @@ (for/or ([f (in-list fs)]) (match f [(FilterSet: f+ f-) - (and (filter-subtype* A0 f+ t-f) (filter-subtype* A0 f+ t-f) A0)]))] + (subtype-seq A0 + (filter-subtype* f+ t-f) + (filter-subtype* f- t-f))]))] [((Result: t (FilterSet: ft ff) o) (Result: t* (FilterSet: ft* ff*) o)) (subtype-seq A0 (subtype* t t*) diff --git a/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/unit-tests/subtype-tests.rkt b/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/unit-tests/subtype-tests.rkt index 2d4a7d1b12..576ad4ac4a 100644 --- a/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/unit-tests/subtype-tests.rkt +++ b/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/unit-tests/subtype-tests.rkt @@ -267,6 +267,8 @@ [(-> Univ -Bottom) (-> Univ (-values (list -String -Symbol)))] [(-> Univ -Bottom) (-> Univ (-values-dots null -String 'x))] + [FAIL (make-pred-ty -String) (-> Univ (-AnyValues (-filter -String 0)))] + ;; keyword function types [(->key #:x -Symbol #f Univ) (->key Univ)] [FAIL (->key #:x -Symbol #t Univ) (->key Univ)]