Fix litFitsInChar
authorIan Lynagh <ian@well-typed.com>
Wed, 19 Sep 2012 22:23:48 +0000 (23:23 +0100)
committerIan Lynagh <ian@well-typed.com>
Wed, 19 Sep 2012 22:23:48 +0000 (23:23 +0100)
It was always False before

compiler/basicTypes/Literal.lhs

index 220ef9e..a590eae 100644 (file)
@@ -351,10 +351,9 @@ litIsDupable dflags (LitInteger i _) = inIntRange dflags i
 litIsDupable _      _                = True
 
 litFitsInChar :: Literal -> Bool
-litFitsInChar (MachInt i)
-                         = fromInteger i <= ord minBound
-                        && fromInteger i >= ord maxBound
-litFitsInChar _         = False
+litFitsInChar (MachInt i) = i >= toInteger (ord minBound)
+                         && i <= toInteger (ord maxBound)
+litFitsInChar _           = False
 
 litIsLifted :: Literal -> Bool
 litIsLifted (LitInteger {}) = True