Merge master into the ghc-new-co branch
[ghc-hetmet.git] / compiler / deSugar / Check.lhs
index b604a2f..cc00536 100644 (file)
@@ -27,7 +27,6 @@ import TysWiredIn
 import PrelNames
 import TyCon
 import Type
-import Unify( dataConCannotMatch )
 import SrcLoc
 import UniqSet
 import Util
@@ -110,8 +109,7 @@ type EqnSet = UniqSet EqnNo
 check :: [EquationInfo] -> ([ExhaustivePat], [EquationInfo])
   -- Second result is the shadowed equations
   -- if there are view patterns, just give up - don't know what the function is
-check qs = pprTrace "check" (ppr tidy_qs) $
-           (untidy_warns, shadowed_eqns)
+check qs = (untidy_warns, shadowed_eqns)
       where
         tidy_qs = map tidy_eqn qs
        (warns, used_nos) = check' ([1..] `zip` tidy_qs)
@@ -696,18 +694,18 @@ tidy_pat (TuplePat ps boxity ty)
   where
     arity = length ps
 
-tidy_pat (NPat lit mb_neg eq) = tidyNPat lit mb_neg eq
+tidy_pat (NPat lit mb_neg eq) = tidyNPat tidy_lit_pat lit mb_neg eq
+tidy_pat (LitPat lit)         = tidy_lit_pat lit
 
--- Unpack string patterns fully, so we can see when they overlap with
--- each other, or even explicit lists of Chars.
-tidy_pat (LitPat lit)
+tidy_lit_pat :: HsLit -> Pat Id
+-- Unpack string patterns fully, so we can see when they 
+-- overlap with each other, or even explicit lists of Chars.
+tidy_lit_pat lit
   | HsString s <- lit
-  = unLoc $ foldr (\c pat -> mkPrefixConPat consDataCon [mk_char_lit c, pat] stringTy)
+  = unLoc $ foldr (\c pat -> mkPrefixConPat consDataCon [mkCharLitPat c, pat] stringTy)
                  (mkPrefixConPat nilDataCon [] stringTy) (unpackFS s)
   | otherwise
   = tidyLitPat lit 
-  where
-    mk_char_lit c = mkPrefixConPat charDataCon [nlLitPat (HsCharPrim c)] charTy
 
 -----------------
 tidy_con :: DataCon -> HsConPatDetails Id -> HsConPatDetails Id