From 4012a728f4613f95c7a82cb33c43d3efbce90b58 Mon Sep 17 00:00:00 2001 From: Eric Dobson Date: Wed, 12 Mar 2014 21:53:55 -0700 Subject: [PATCH] Add Top and Bot to contradictory and complementary checks. original commit: 04fc5498c85bc36bbaf0ab0bcae947560cd60968 --- .../typed-racket/types/filter-ops.rkt | 3 +++ .../tests/typed-racket/unit-tests/filter-tests.rkt | 13 +++++++++++++ 2 files changed, 16 insertions(+) diff --git a/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/types/filter-ops.rkt b/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/types/filter-ops.rkt index 27aa10f8..f21204c0 100644 --- a/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/types/filter-ops.rkt +++ b/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/types/filter-ops.rkt @@ -23,6 +23,8 @@ (and (name-ref=? i1 i2) (subtype t1 t2))] [((NotTypeFilter: t2 p1 i2) (TypeFilter: t1 p1 i1)) (and (name-ref=? i1 i2) (subtype t1 t2))] + [((Bot:) _) #t] + [(_ (Bot:)) #t] [(_ _) #f])) ;; complementary: Filter/c Filter/c -> boolean? @@ -33,6 +35,7 @@ (and (name-ref=? i1 i2) (subtype t2 t1))] [((NotTypeFilter: t2 p1 i2) (TypeFilter: t1 p1 i1)) (and (name-ref=? i1 i2) (subtype t2 t1))] + [((Top:) (Top:)) #t] [(_ _) #f])) (define (name-ref=? a b) diff --git a/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/unit-tests/filter-tests.rkt b/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/unit-tests/filter-tests.rkt index f9143e0a..533eaabe 100644 --- a/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/unit-tests/filter-tests.rkt +++ b/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/unit-tests/filter-tests.rkt @@ -53,6 +53,19 @@ (test-opposite #:not-complementary #:not-contradictory (-not-filter -Symbol 0) (-filter -String 0)) + + (test-opposite #:not-complementary #:contradictory + -bot + -bot) + + (test-opposite #:not-complementary #:contradictory + -bot + -top) + + (test-opposite #:complementary #:not-contradictory + -top + -top) + ) (test-suite "Implied Atomic"