diff --git a/typed-racket-lib/typed-racket/base-env/base-env-numeric.rkt b/typed-racket-lib/typed-racket/base-env/base-env-numeric.rkt index 1bf7d85f..f6b34c60 100644 --- a/typed-racket-lib/typed-racket/base-env/base-env-numeric.rkt +++ b/typed-racket-lib/typed-racket/base-env/base-env-numeric.rkt @@ -1166,10 +1166,10 @@ ;; reals (varop-1+ -NonNegReal -NonNegReal) (-> -NonPosReal -NonPosReal) - (-> -NonPosReal -NonPosReal -NonNegReal) - (-> -NonPosReal -NonNegReal -NonPosReal) - (-> -NonNegReal -NonPosReal -NonPosReal) - (-> -NonPosReal -NonPosReal -NonPosReal -NonPosReal) + (-> -NegReal -NegReal -NonNegReal) ; 0.0 is non-neg, but doesn't preserve sign + (-> -NegReal -PosReal -NonPosReal) ; idem + (-> -PosReal -NegReal -NonPosReal) ; idem + (-> -NegReal -NegReal -NegReal -NonPosReal) ; idem (varop-1+ -Real) ;; complexes (varop-1+ -FloatComplex) diff --git a/typed-racket-test/unit-tests/typecheck-tests.rkt b/typed-racket-test/unit-tests/typecheck-tests.rkt index e42f81ef..c608dbd8 100644 --- a/typed-racket-test/unit-tests/typecheck-tests.rkt +++ b/typed-racket-test/unit-tests/typecheck-tests.rkt @@ -453,6 +453,7 @@ (tc-e (fl/ 1.7976931348623157e+308 -0.0e0) -Flonum) (tc-e (expt (make-rectangular 3 -1.7976931348623157e+308) (flacos (real->double-flonum 59.316513f0))) (t:Un -Flonum -FloatComplex)) (tc-e (exact->inexact (ann 3 Number)) (t:Un -InexactReal -InexactComplex)) + (tc-e (/ (round (exact-round -2.7393196f0)) (real->double-flonum (inexact->exact (real->single-flonum -0.0)))) -Real) (tc-e (exact->inexact 3) -PosFlonum) (tc-e (exact->inexact -3) -NegFlonum) (tc-e (real->double-flonum 0.0) -FlonumPosZero)