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 8009d468fb..c8c039b3ee 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 @@ -1700,17 +1700,18 @@ (-PosReal -Flonum . -> . -PosFlonum) (-NonNegFlonum -Real . -> . -NonNegFlonum) (-NonNegReal -Flonum . -> . -NonNegFlonum) + (-Flonum (Un -NegInt -PosInt) . -> . -Flonum) + (-Flonum -Int . -> . (Un -Flonum -One)) + (-Flonum -Flonum . -> . (Un -Flonum -FloatComplex)) (-NonNegSingleFlonum (Un -SingleFlonum -NegRat -PosRat) . -> . -NonNegSingleFlonum) + (-SingleFlonum (Un -NegInt -PosInt) . -> . -SingleFlonum) + (-SingleFlonum -Int . -> . (Un -SingleFlonum -One)) + (-SingleFlonum -SingleFlonum . -> . (Un -SingleFlonum -SingleFlonumComplex)) (-NonNegInexactReal (Un -NegReal -PosReal) . -> . -NonNegInexactReal) (-NonNegReal -Real . -> . -NonNegReal) - (-Flonum (Un -NegInt -PosInt) . -> . -Flonum) - (-Flonum -Flonum . -> . (Un -Flonum -FloatComplex)) - (-Flonum -Real . -> . N) - (-SingleFlonum (Un -NegInt -PosInt) . -> . -SingleFlonum) - (-SingleFlonum -SingleFlonum . -> . (Un -SingleFlonum -SingleFlonumComplex)) (-InexactReal (Un -NegInt -PosInt) . -> . -InexactReal) - (-Real -Int . -> . -Real) (-InexactReal -InexactReal . -> . (Un -InexactReal -InexactComplex)) + (-Real -Int . -> . -Real) (-FloatComplex (Un -InexactComplex -InexactReal) . -> . -FloatComplex) (-SingleFlonumComplex (Un -SingleFlonum -SingleFlonumComplex) . -> . -SingleFlonumComplex) ((Un -InexactReal -InexactComplex) -InexactComplex . -> . -InexactComplex) 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 01c68ad82f..c91b321734 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 @@ -278,6 +278,8 @@ (tc-e (expt 0.5 2) -PosFlonum) (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 (flexpt 0.5 0.3) -NonNegFlonum) (tc-e (flexpt 0.00000000001 100000000000.0) -NonNegFlonum) (tc-e (flexpt -2.0 -0.5) -Flonum) ; NaN