diff --git a/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/private/type-contract.rkt b/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/private/type-contract.rkt index 8187227a..f3d85450 100644 --- a/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/private/type-contract.rkt +++ b/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/private/type-contract.rkt @@ -17,6 +17,7 @@ racket/dict unstable/list unstable/sequence + (types abbrev) (static-contracts instantiate optimize structures combinators) ;; TODO make this from contract-req (prefix-in c: racket/contract) @@ -514,6 +515,9 @@ ;; functions with no filters or objects [(arr: dom (Values: (list (Result: rngs (FilterSet: (Top:) (Top:)) (Empty:)) ...)) rst drst kws) (convert-arr a)] + ;; Functions that don't return + [(arr: dom (Values: (list (Result: (== -Bottom) _ _) ...)) rst drst kws) + (convert-arr a)] ;; functions with filters or objects [(arr: dom (Values: (list (Result: rngs _ _) ...)) rst drst kws) (if (from-untyped? typed-side) diff --git a/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/unit-tests/contract-tests.rkt b/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/unit-tests/contract-tests.rkt index 12458e60..be78d1d3 100644 --- a/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/unit-tests/contract-tests.rkt +++ b/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/unit-tests/contract-tests.rkt @@ -80,6 +80,7 @@ (t (-polydots (a) (->... (list) (a a) -Symbol))) (t (-mu x (-Syntax x))) + (t (-> (-> Univ -Bottom : -bot-filter) -Bottom : -bot-filter)) (t/fail ((-poly (a) (-vec a)) . -> . -Symbol)