diff --git a/collects/tests/typed-scheme/unit-tests/typecheck-tests.rkt b/collects/tests/typed-scheme/unit-tests/typecheck-tests.rkt index 1f15665c..df5a9c17 100644 --- a/collects/tests/typed-scheme/unit-tests/typecheck-tests.rkt +++ b/collects/tests/typed-scheme/unit-tests/typecheck-tests.rkt @@ -807,6 +807,7 @@ (vector-ref #("a" "b") (sub1 x)) (vector-ref #("a" "b") (- x 1))) -String] + [tc-err (string-append "bar" (if (zero? (ann 0.0 Float)) #f "foo"))] ) (test-suite "check-type tests" diff --git a/collects/typed-scheme/private/base-env-numeric.rkt b/collects/typed-scheme/private/base-env-numeric.rkt index daf5aacb..f0ccb723 100644 --- a/collects/typed-scheme/private/base-env-numeric.rkt +++ b/collects/typed-scheme/private/base-env-numeric.rkt @@ -41,7 +41,8 @@ ) ;; numeric predicates -[zero? (make-pred-ty (list N) B -Zero)] +[zero? (asym-pred N B (-FS (-filter (Un -Flonum -Zero) 0) + (-not-filter -Zero 0)))] [number? (make-pred-ty N)] [integer? (asym-pred Univ B (-FS (-filter (Un -Integer -Flonum) 0) (-not-filter -Integer 0)))]