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 8537ac2a..b0e091d7 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 @@ -1841,21 +1841,21 @@ (-Real . -> . N))] ; defined on inexact integers too, but not complex [integer-sqrt/remainder (from-cases - (-Zero . -> . (-values -Zero -Zero)) - (-One . -> . (-values -One -Zero)) - (-Byte . -> . (-values -Byte -Byte)) - (-Index . -> . (-values -Index -Index)) - (-NonNegFixnum . -> . (-values -Index -NonNegFixnum)) + (-Zero . -> . (-values (list -Zero -Zero))) + (-One . -> . (-values (list -One -Zero))) + (-Byte . -> . (-values (list -Byte -Byte))) + (-Index . -> . (-values (list -Index -Index))) + (-NonNegFixnum . -> . (-values (list -Index -NonNegFixnum))) - (map (λ (t) (t . -> . (-values t -Int))) + (map (λ (t) (t . -> . (-values (list t -Int)))) (list -Nat -NonNegRat -FlonumPosZero -FlonumNegZero -FlonumZero -NonNegFlonum -SingleFlonumPosZero -SingleFlonumNegZero -SingleFlonumZero -NonNegSingleFlonum -InexactRealPosZero -InexactRealNegZero -InexactRealZero -NonNegInexactReal -RealZero -NonNegReal)) - (-Rat . -> . (-values -ExactNumber -Int)) - (-Real . -> . (-values N -Int)))] ; defined on inexact integers too + (-Rat . -> . (-values (list -ExactNumber -Int))) + (-Real . -> . (-values (list N -Int))))] ; defined on inexact integers too [log (cl->* (-NonNegRat . -> . -Real) diff --git a/typed-racket-test/unit-tests/typecheck-tests.rkt b/typed-racket-test/unit-tests/typecheck-tests.rkt index 3c982340..31b30005 100644 --- a/typed-racket-test/unit-tests/typecheck-tests.rkt +++ b/typed-racket-test/unit-tests/typecheck-tests.rkt @@ -440,6 +440,7 @@ (tc-e (extflexpt 0.5t0 0.3t0) -NonNegExtFlonum) (tc-e (extflexpt 0.00000000001t0 100000000000.0t0) -NonNegExtFlonum) (tc-e (extflexpt -2.0t0 -0.5t0) -ExtFlonum) ; NaN + (tc-e (let-values ([(x y) (integer-sqrt/remainder 0)]) (+ x y)) -Zero) (tc-e (tanh (ann 0 Nonnegative-Integer)) -NonNegReal) (tc-e (sinh (ann 0 Nonpositive-Integer)) -NonPosReal) (tc-e (angle -1) (t:Un -InexactReal -Zero))