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 af2f811e..8785cbd2 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 @@ -1607,8 +1607,8 @@ (-PosRat -Int . -> . -PosRat) (-NonNegRat -Int . -> . -NonNegRat) (-Rat -Int . -> . -Rat) - (-NonNegFlonum -NonNegFlonum . -> . -NonNegFlonum) - (-NonNegFlonum -NonNegReal . -> . (Un -NonNegFlonum -One)) + (-NonNegFlonum -Flonum . -> . -NonNegFlonum) + (-NonNegFlonum -Real . -> . (Un -NonNegFlonum -One)) (-PosReal -NonNegFlonum . -> . (Un -NonNegFlonum -One)) ;; even integer exponents can give complex results ;; too large exponents turn into infinities, and (expt -inf.0 -inf.0) => nan.0+nan.0i @@ -1617,15 +1617,15 @@ (-Flonum -Fixnum . -> . (Un -Flonum -One)) (-Flonum -Flonum . -> . (Un -Flonum -FloatComplex)) ;; 1st arg can't be non-neg, -0.0 gives the wrong sign - (-PosSingleFlonum (Un -NonNegSingleFlonum -NegFixnum -PosFixnum) . -> . -NonNegSingleFlonum) - (-NonNegSingleFlonum (Un -NonNegSingleFlonum -NegFixnum -PosFixnum) . -> . -SingleFlonum) + (-PosSingleFlonum (Un -SingleFlonum -NegFixnum -PosFixnum) . -> . -NonNegSingleFlonum) + (-NonNegSingleFlonum (Un -SingleFlonum -NegFixnum -PosFixnum) . -> . -SingleFlonum) (-SingleFlonum (Un -NegFixnum -PosFixnum) . -> . -SingleFlonum) (-SingleFlonum -Fixnum . -> . (Un -SingleFlonum -One)) (-SingleFlonum -SingleFlonum . -> . (Un -SingleFlonum -SingleFlonumComplex)) (-PosInexactReal (Un -NegFixnum -PosFixnum) . -> . -NonNegInexactReal) (-NonNegInexactReal (Un -NegFixnum -PosFixnum) . -> . -InexactReal) (-PosReal -Real . -> . -NonNegReal) - (-NonNegReal -Fixnum . -> . -Real) + (-NonNegReal -Real . -> . -Real) (-InexactReal (Un -NegFixnum -PosFixnum) . -> . -InexactReal) (-InexactReal -InexactReal . -> . (Un -InexactReal -InexactComplex)) (-Real -Nat . -> . -Real) diff --git a/typed-racket-test/unit-tests/typecheck-tests.rkt b/typed-racket-test/unit-tests/typecheck-tests.rkt index 7b659cb0..f02d90d4 100644 --- a/typed-racket-test/unit-tests/typecheck-tests.rkt +++ b/typed-racket-test/unit-tests/typecheck-tests.rkt @@ -421,15 +421,15 @@ (tc-e (expt (*) -0.0) (t:Un -NonNegFlonum -One)) (tc-e (expt (*) 2.4521075152139656e-300) (t:Un -NonNegFlonum -One)) (tc-e (expt (*) -0.0) (t:Un -NonNegFlonum -One)) - (tc-e (expt -0.0 -1.0) (t:Un -Flonum -FloatComplex)) + (tc-e (expt -0.0 -1.0) -NonNegFlonum) (tc-e (expt 0 (flabs (cos (real->double-flonum 2)))) - -Number) + -Real) (tc-e (expt (sub1 (gcd (exact-round 1))) (- (ceiling (real->double-flonum -2.6897657f0)))) - -Number) + -Real) (tc-e (expt (sqrt (+)) (cosh (flcos (real->double-flonum 0)))) - -Number) + -Real) (tc-e (expt (tan (real->double-flonum 6)) (lcm (*) (exact-round -1.7976931348623153e+308) 6)) @@ -458,7 +458,7 @@ (tc-e (/ (round (exact-round -2.7393196f0)) (real->double-flonum (inexact->exact (real->single-flonum -0.0)))) -Real) (tc-e (bitwise-and (exact-round 1.7976931348623157e+308) (exact-round -29)) -Int) (tc-e (flexpt -0.0 -1.0) -Flonum) - (tc-e (expt -0.0f0 -3.0) (t:Un -InexactReal -InexactComplex)) + (tc-e (expt -0.0f0 -3.0) -Real) (tc-e (expt -8.665778974912815f+107 -677460115195106837726964554590085563061636191189747) -Number) (tc-e (expt (sin +inf.f) +nan.0+nan.0i) -Number) (tc-e (/ (gcd 1 0) -0.0f0 2.718281828459045) -Real)