diff --git a/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/base-env/base-env-numeric.rkt b/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/base-env/base-env-numeric.rkt index 062e166a..91ba65be 100644 --- a/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/base-env/base-env-numeric.rkt +++ b/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/base-env/base-env-numeric.rkt @@ -1880,14 +1880,13 @@ (-PosRat -Int . -> . -PosRat) (-NonNegRat -Int . -> . -NonNegRat) (-Rat -Int . -> . -Rat) - (-PosFlonum (Un -PosReal -NegReal) . -> . -PosFlonum) - (-PosReal -Flonum . -> . -PosFlonum) - (-NonNegFlonum -Real . -> . -NonNegFlonum) - (-NonNegReal -Flonum . -> . -NonNegFlonum) + (-NonNegFlonum -NonNegFlonum . -> . -NonNegFlonum) + (-NonNegFlonum -NonNegReal . -> . (Un -NonNegFlonum -One)) + (-PosReal -NonNegFlonum . -> . (Un -NonNegFlonum -One)) (-Flonum (Un -NegInt -PosInt) . -> . -Flonum) (-Flonum -Int . -> . (Un -Flonum -One)) (-Flonum -Flonum . -> . (Un -Flonum -FloatComplex)) - (-NonNegSingleFlonum (Un -SingleFlonum -NegRat -PosRat) . -> . -NonNegSingleFlonum) + (-NonNegSingleFlonum (Un -NonNegSingleFlonum -NegRat -PosRat) . -> . -NonNegSingleFlonum) (-SingleFlonum (Un -NegInt -PosInt) . -> . -SingleFlonum) (-SingleFlonum -Int . -> . (Un -SingleFlonum -One)) (-SingleFlonum -SingleFlonum . -> . (Un -SingleFlonum -SingleFlonumComplex)) diff --git a/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/unit-tests/typecheck-tests.rkt b/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/unit-tests/typecheck-tests.rkt index d85ed733..6a4321f0 100644 --- a/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/unit-tests/typecheck-tests.rkt +++ b/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/unit-tests/typecheck-tests.rkt @@ -393,12 +393,28 @@ (tc-e (lcm 3 1/2) -PosRat) (tc-e (lcm (ann 3 Integer) 1/2) -NonNegRat) (tc-e (lcm (ann 3 Integer) -1/2) -NonNegRat) - (tc-e (expt 0.5 0.3) -PosFlonum) - (tc-e (expt 0.5 2) -PosFlonum) + (tc-e (expt 0.5 0.3) -NonNegFlonum) + (tc-e (expt 0.5 2) (t:Un -NonNegFlonum -One)) (tc-e (expt 0.5 0) -One) (tc-e (expt -1/2 -1/2) -Number) (tc-e (expt (ann 0.5 Float) (ann 2 Integer)) (t:Un -Flonum -One)) (tc-e (expt (ann 0.5f0 Single-Flonum) (ann 2 Integer)) (t:Un -SingleFlonum -One)) + (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 (flabs (cos (real->double-flonum 2)))) + -NonNegReal) + (tc-e (expt + (sub1 (gcd (exact-round 1))) + (- (ceiling (real->double-flonum -2.6897657f0)))) + -NonNegReal) + (tc-e (expt (sqrt (+)) (cosh (flcos (real->double-flonum 0)))) + -NonNegReal) + (tc-e (expt + (tan (real->double-flonum 6)) + (lcm (*) (exact-round -1.7976931348623153e+308) 6)) + -NonNegReal) (tc-e (flexpt 0.5 0.3) -NonNegFlonum) (tc-e (flexpt 0.00000000001 100000000000.0) -NonNegFlonum) (tc-e (flexpt -2.0 -0.5) -Flonum) ; NaN