Merge branch 'master' of http://darcs.haskell.org/ghc
[ghc.git] / compiler / simplCore / Simplify.lhs
index 6f811a9..68142f1 100644 (file)
@@ -21,6 +21,7 @@ import Type hiding      ( substTy, extendTvSubst, substTyVar )
 import SimplEnv
 import SimplUtils
 import FamInstEnv      ( FamInstEnv )
+import Literal         ( litIsLifted )
 import Id
 import MkId            ( seqId, realWorldPrimId )
 import MkCore          ( mkImpossibleExpr )
@@ -1722,6 +1723,7 @@ rebuildCase, reallyRebuildCase
 rebuildCase env scrut case_bndr alts cont
   | Lit lit <- scrut    -- No need for same treatment as constructors
                         -- because literals are inlined more vigorously
+  , not (litIsLifted lit)
   = do  { tick (KnownBranch case_bndr)
         ; case findAlt (LitAlt lit) alts of
            Nothing           -> missingAlt env case_bndr alts cont