X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=ghc%2Fcompiler%2FsimplCore%2FSimplUtils.lhs;h=ba1cc4e7bc3849fa61e16e16b5704173fa7da262;hp=f046fa845a38b47c89b4d5a9bfb664ef8234bc9e;hb=5cf27e8f1731c52fe63a5b9615f927484164c61b;hpb=68afb16743cafd5b7495771d359891c6dfc5a186 diff --git a/ghc/compiler/simplCore/SimplUtils.lhs b/ghc/compiler/simplCore/SimplUtils.lhs index f046fa8..ba1cc4e 100644 --- a/ghc/compiler/simplCore/SimplUtils.lhs +++ b/ghc/compiler/simplCore/SimplUtils.lhs @@ -36,7 +36,7 @@ import PrelInfo ( augmentId, buildId, realWorldStateTy ) import PrimOp ( primOpIsCheap ) import SimplEnv import SimplMonad -import Type ( eqTy, isPrimType, maybeAppDataTyCon, getTyVar_maybe ) +import Type ( eqTy, isPrimType, maybeAppDataTyConExpandingDicts, getTyVar_maybe ) import TyVar ( GenTyVar{-instance Eq-} ) import Util ( isIn, panic ) @@ -372,7 +372,7 @@ mkIdentityAlts rhs_ty returnSmpl (PrimAlts [] (BindDefault (binder, bad_occ_info) (Var binder))) | otherwise - = case (maybeAppDataTyCon rhs_ty) of + = case (maybeAppDataTyConExpandingDicts rhs_ty) of Just (tycon, ty_args, [data_con]) -> -- algebraic type suitable for unpacking let inst_con_arg_tys = dataConArgTys data_con ty_args @@ -405,7 +405,7 @@ simplIdWantsToBeINLINEd id env type_ok_for_let_to_case :: Type -> Bool type_ok_for_let_to_case ty - = case (maybeAppDataTyCon ty) of + = case (maybeAppDataTyConExpandingDicts ty) of Nothing -> False Just (tycon, ty_args, []) -> False Just (tycon, ty_args, non_null_data_cons) -> True