From 1e3239765847e18a08876d896dacd38919151e15 Mon Sep 17 00:00:00 2001 From: Vincent St-Amour Date: Fri, 13 Nov 2015 09:30:38 -0600 Subject: [PATCH] Refine type for expt. Fixes rsound. --- typed-racket-lib/typed-racket/base-env/base-env-numeric.rkt | 2 +- typed-racket-test/unit-tests/typecheck-tests.rkt | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) 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 ae1e89e8..62befab4 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 @@ -1624,7 +1624,7 @@ (-SingleFlonum -SingleFlonum . -> . (Un -SingleFlonum -SingleFlonumComplex)) (-PosInexactReal (Un -NegFixnum -PosFixnum) . -> . -NonNegInexactReal) (-NonNegInexactReal (Un -NegFixnum -PosFixnum) . -> . -InexactReal) - (-PosReal -Fixnum . -> . -NonNegReal) + (-PosReal -Real . -> . -NonNegReal) (-NonNegReal -Fixnum . -> . -Real) (-InexactReal (Un -NegFixnum -PosFixnum) . -> . -InexactReal) (-InexactReal -InexactReal . -> . (Un -InexactReal -InexactComplex)) diff --git a/typed-racket-test/unit-tests/typecheck-tests.rkt b/typed-racket-test/unit-tests/typecheck-tests.rkt index 4a458ab1..9882736b 100644 --- a/typed-racket-test/unit-tests/typecheck-tests.rkt +++ b/typed-racket-test/unit-tests/typecheck-tests.rkt @@ -434,6 +434,8 @@ (tan (real->double-flonum 6)) (lcm (*) (exact-round -1.7976931348623153e+308) 6)) -Number) + (tc-e (exact->inexact (expt 10 (/ -120.0 20))) ; from rsound + -NonNegInexactReal) (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