From c36cbef304dca991e8a64816c1cca6d31b8abe23 Mon Sep 17 00:00:00 2001 From: Vincent St-Amour Date: Fri, 29 Mar 2013 16:24:37 -0400 Subject: [PATCH] Fix type of lcm. Found using random testing. original commit: 92c4c70e7a3ebcdfa22d8a518256543803558adb --- collects/typed-racket/base-env/base-env-numeric.rkt | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/collects/typed-racket/base-env/base-env-numeric.rkt b/collects/typed-racket/base-env/base-env-numeric.rkt index 742eedbc..966576ac 100644 --- a/collects/typed-racket/base-env/base-env-numeric.rkt +++ b/collects/typed-racket/base-env/base-env-numeric.rkt @@ -1820,8 +1820,9 @@ [lcm (from-cases (map unop (list -Zero -One -PosByte -Byte -PosIndex -Index -PosFixnum)) (-NegFixnum . -> . -PosFixnum) (-Fixnum . -> . -NonNegFixnum) - (commutative-case -Zero -Real) ; zero anywhere -> zero - (map (lambda (t) (commutative-binop t -One)) + (commutative-case -Zero -Rat) ; zero anywhere -> zero + (commutative-case -RealZero -Real) + (map (lambda (t) (commutative-binop -One t)) (list -PosByte -Byte -PosIndex -Index -PosFixnum)) (commutative-binop -One -NegFixnum -PosFixnum) (commutative-binop -One -Fixnum -NonNegFixnum) @@ -1838,7 +1839,7 @@ (varop-1+ (Un -PosFlonum -NegFlonum) -PosFlonum) (varop-1+ -Flonum -NonNegFlonum) (commutative-case (Un -PosFlonum -NegFlonum) (Un -PosReal -NegReal) -PosFlonum) - (commutative-case -Flonum -Real -NonNegFlonum) + (commutative-case -Flonum (Un -PosReal -NegReal) -NonNegFlonum) ; exact 0 -> exact 0 (varop-1+ (Un -PosSingleFlonum -NegSingleFlonum) -PosSingleFlonum) (varop-1+ -SingleFlonum -NonNegSingleFlonum) (varop-1+ (Un -PosInexactReal -NegInexactReal) -PosInexactReal)