From dc38b069d9a0a6ca4f2f3df5d521bf40c93b3861 Mon Sep 17 00:00:00 2001 From: Vincent St-Amour Date: Sat, 8 Sep 2012 18:51:38 -0400 Subject: [PATCH] Fix types of comparisons between zero and non-negative integer types. original commit: 729d154deb203490c68b4cd2cff95547f5509db9 --- .../typed-racket/base-env/base-env-numeric.rkt | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/collects/typed-racket/base-env/base-env-numeric.rkt b/collects/typed-racket/base-env/base-env-numeric.rkt index 40713844..59eef6f8 100644 --- a/collects/typed-racket/base-env/base-env-numeric.rkt +++ b/collects/typed-racket/base-env/base-env-numeric.rkt @@ -775,6 +775,9 @@ (-> -Byte -RealZero B : (-FS (-filter (Un) 0) -top)) (-> -Byte -One B : (-FS (-filter -Zero 0) -top)) (-> -Zero -Byte B : (-FS (-filter -PosByte 1) (-filter -Zero 1))) ; can't be -RealZero, which includes NaN + (-> -Zero -Index B : (-FS (-filter -PosIndex 1) (-filter -Zero 1))) + (-> -Zero -NonNegFixnum B : (-FS (-filter -PosFixnum 1) (-filter -Zero 1))) + (-> -Zero -Nat B : (-FS (-filter -PosInt 1) (-filter -Zero 1))) (-> -Byte -PosByte B : (-FS -top (-filter -PosByte 0))) (-> -Byte -Byte B : (-FS (-filter -PosByte 1) -top)) (-> -PosInt -Byte B : (-FS (-and (-filter -PosByte 0) (-filter -PosByte 1)) -top)) @@ -829,6 +832,9 @@ (-> -RealZero -Byte B : (-FS (-filter (Un) 1) -top)) (-> -One -Byte B : (-FS (-filter -Zero 1) -top)) (-> -Byte -Zero B : (-FS (-filter -PosByte 0) (-filter -Zero 0))) + (-> -Index -Zero B : (-FS (-filter -PosIndex 0) (-filter -Zero 0))) + (-> -NonNegFixnum -Zero B : (-FS (-filter -PosFixnum 0) (-filter -Zero 0))) + (-> -Nat -Zero B : (-FS (-filter -PosInt 0) (-filter -Zero 0))) (-> -PosByte -Byte B : (-FS -top (-filter -PosByte 1))) (-> -Byte -Byte B : (-FS (-filter -PosByte 0) -top)) (-> -Byte -PosInt B : (-FS (-and (-filter -PosByte 0) (-filter -PosByte 1)) -top)) @@ -874,7 +880,10 @@ [<= (from-cases (-> -Pos -One B : (-FS (-filter -One 0) -top)) (-> -Byte -Zero B : (-FS (-filter -Zero 0) (-filter -PosByte 0))) - (-> -Zero -Byte B : (-FS -top (-filter (Un) 1))) + (-> -Index -Zero B : (-FS (-filter -Zero 0) (-filter -PosIndex 0))) + (-> -NonNegFixnum -Zero B : (-FS (-filter -Zero 0) (-filter -PosFixnum 0))) + (-> -Nat -Zero B : (-FS (-filter -Zero 0) (-filter -PosInt 0))) + (-> -Zero -Nat B : (-FS -top (-filter (Un) 1))) (-> -One -Byte B : (-FS (-filter -PosByte 1) (-filter -Zero 1))) (-> -PosByte -Byte B : (-FS (-filter -PosByte 1) -top)) (-> -Byte -Byte B : (-FS -top (-filter -PosByte 0))) @@ -924,7 +933,10 @@ [>= (from-cases (-> -One -Pos B : (-FS (-filter -One 1) -top)) (-> -Zero -Byte B : (-FS (-filter -Zero 1) (-filter -PosByte 1))) - (-> -Byte -Zero B : (-FS -top (-filter (Un) 0))) + (-> -Zero -Index B : (-FS (-filter -Zero 1) (-filter -PosIndex 1))) + (-> -Zero -NonNegFixnum B : (-FS (-filter -Zero 1) (-filter -PosFixnum 1))) + (-> -Zero -Nat B : (-FS (-filter -Zero 1) (-filter -PosInt 1))) + (-> -Nat -Zero B : (-FS -top (-filter (Un) 0))) (-> -Byte -One B : (-FS (-filter -PosByte 0) (-filter -Zero 0))) (-> -Byte -PosByte B : (-FS (-filter -PosByte 0) -top)) (-> -Byte -Byte B : (-FS -top (-filter -PosByte 1)))