From: Ian Lynagh Date: Sat, 29 Jul 2006 22:08:54 +0000 (+0000) Subject: Eliminate some warnings X-Git-Tag: 2007-09-13~170 X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=abf088ecc34ebfd87e098194407dbacae495abe9;p=ghc-base.git Eliminate some warnings Eliminate warnings in the libraries caused by mixing pattern matching with numeric literal matching. --- diff --git a/Data/Complex.hs b/Data/Complex.hs index 0f8d13b..3b37f6c 100644 --- a/Data/Complex.hs +++ b/Data/Complex.hs @@ -136,7 +136,7 @@ instance (RealFloat a) => Num (Complex a) where (x:+y) * (x':+y') = (x*x'-y*y') :+ (x*y'+y*x') negate (x:+y) = negate x :+ negate y abs z = magnitude z :+ 0 - signum 0 = 0 + signum (0:+0) = 0 signum z@(x:+y) = x/r :+ y/r where r = magnitude z fromInteger n = fromInteger n :+ 0 #ifdef __HUGS__ @@ -165,7 +165,7 @@ instance (RealFloat a) => Floating (Complex a) where where expx = exp x log z = log (magnitude z) :+ phase z - sqrt 0 = 0 + sqrt (0:+0) = 0 sqrt z@(x:+y) = u :+ (if y < 0 then -v else v) where (u,v) = if x < 0 then (v',u') else (u',v') v' = abs y / (u'*2) diff --git a/GHC/Num.lhs b/GHC/Num.lhs index 540204d..67c7b18 100644 --- a/GHC/Num.lhs +++ b/GHC/Num.lhs @@ -184,8 +184,8 @@ divModInteger (J# s1 d1) (J# s2 d2) -> (J# s3 d3, J# s4 d4) remInteger :: Integer -> Integer -> Integer -remInteger ia 0 - = error "Prelude.Integral.rem{Integer}: divide by 0" +remInteger ia ib + | ib == 0 = error "Prelude.Integral.rem{Integer}: divide by 0" remInteger a@(S# (-LEFTMOST_BIT#)) b = remInteger (toBig a) b remInteger (S# a) (S# b) = S# (remInt# a b) {- Special case doesn't work, because a 1-element J# has the range @@ -205,8 +205,8 @@ remInteger (J# sa a) (J# sb b) = case remInteger# sa a sb b of (# sr, r #) -> J# sr r quotInteger :: Integer -> Integer -> Integer -quotInteger ia 0 - = error "Prelude.Integral.quot{Integer}: divide by 0" +quotInteger ia ib + | ib == 0 = error "Prelude.Integral.quot{Integer}: divide by 0" quotInteger a@(S# (-LEFTMOST_BIT#)) b = quotInteger (toBig a) b quotInteger (S# a) (S# b) = S# (quotInt# a b) {- Special case disabled, see remInteger above