From abf088ecc34ebfd87e098194407dbacae495abe9 Mon Sep 17 00:00:00 2001 From: Ian Lynagh Date: Sat, 29 Jul 2006 22:08:54 +0000 Subject: [PATCH] Eliminate some warnings Eliminate warnings in the libraries caused by mixing pattern matching with numeric literal matching. --- Data/Complex.hs | 4 ++-- GHC/Num.lhs | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) 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 -- 1.7.10.4