Remove GHC's haskell98 dependency
[ghc-hetmet.git] / compiler / specialise / SpecConstr.lhs
index 3dfda94..bd70e28 100644 (file)
@@ -27,24 +27,24 @@ import Coercion
 import Rules
 import Type            hiding( substTy )
 import Id
+import MkId            ( mkImpossibleExpr )
 import Var
 import VarEnv
 import VarSet
 import Name
-import OccName         ( mkSpecOcc )
 import DynFlags                ( DynFlags(..) )
 import StaticFlags     ( opt_PprStyle_Debug )
 import StaticFlags     ( opt_SpecInlineJoinPoints )
 import BasicTypes      ( Activation(..) )
 import Maybes          ( orElse, catMaybes, isJust, isNothing )
 import Util
-import List            ( nubBy, partition )
 import UniqSupply
 import Outputable
 import FastString
 import UniqFM
 import MonadUtils
 import Control.Monad   ( zipWithM )
+import Data.List
 \end{code}
 
 -----------------------------------------------------
@@ -778,7 +778,8 @@ scExpr' env (Case scrut b ty alts)
   where
     sc_con_app con args scrut'         -- Known constructor; simplify
        = do { let (_, bs, rhs) = findAlt con alts
-                  alt_env' = extendScSubstList env ((b,scrut') : bs `zip` trimConArgs con args)
+                                 `orElse` (DEFAULT, [], mkImpossibleExpr (coreAltsType alts))
+                  alt_env'  = extendScSubstList env ((b,scrut') : bs `zip` trimConArgs con args)
             ; scExpr alt_env' rhs }
                                
     sc_vanilla scrut_usg scrut'        -- Normal case