X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=compiler%2FdeSugar%2FMatchLit.lhs;h=4842b16850e73be4f9e918466e1e722397de4604;hp=be112e09a782cdb6dc49eaa6c66b3c4f5306977d;hb=3391a03562d4056de7b16cd0f632e6c43ae44cca;hpb=ee5addccd1929a7368a39b2c88d1b77f0bc8fb73 diff --git a/compiler/deSugar/MatchLit.lhs b/compiler/deSugar/MatchLit.lhs index be112e0..4842b16 100644 --- a/compiler/deSugar/MatchLit.lhs +++ b/compiler/deSugar/MatchLit.lhs @@ -33,6 +33,7 @@ import Literal import SrcLoc import Data.Ratio import Outputable +import BasicTypes import Util import FastString \end{code} @@ -124,8 +125,8 @@ hsOverLitKey (OverLit { ol_val = l }) neg = litValKey l neg litValKey :: OverLitVal -> Bool -> Literal litValKey (HsIntegral i) False = MachInt i litValKey (HsIntegral i) True = MachInt (-i) -litValKey (HsFractional r) False = MachFloat r -litValKey (HsFractional r) True = MachFloat (-r) +litValKey (HsFractional r) False = MachFloat (fl_value r) +litValKey (HsFractional r) True = MachFloat (negate (fl_value r)) litValKey (HsIsString s) neg = ASSERT( not neg) MachStr s \end{code} @@ -190,8 +191,8 @@ tidyNPat tidy_lit_pat (OverLit val False _ ty) mb_neg _ mb_rat_lit = case (mb_neg, val) of (Nothing, HsIntegral i) -> Just (fromInteger i) (Just _, HsIntegral i) -> Just (fromInteger (-i)) - (Nothing, HsFractional f) -> Just f - (Just _, HsFractional f) -> Just (-f) + (Nothing, HsFractional f) -> Just (fl_value f) + (Just _, HsFractional f) -> Just (negate (fl_value f)) _ -> Nothing mb_str_lit :: Maybe FastString