X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fcompiler%2FcoreSyn%2FCorePrep.lhs;fp=ghc%2Fcompiler%2FcoreSyn%2FCorePrep.lhs;h=e55bca842ea6ca5fcd040b6fc534547e9806b4b7;hb=9af77fa423926fbda946b31e174173d0ec5ebac8;hp=8621ae1c2e00ac0b3f2314c053f05c9a25c83339;hpb=69e55e7476392a2b59b243a32065350c258d4970;p=ghc-hetmet.git diff --git a/ghc/compiler/coreSyn/CorePrep.lhs b/ghc/compiler/coreSyn/CorePrep.lhs index 8621ae1..e55bca8 100644 --- a/ghc/compiler/coreSyn/CorePrep.lhs +++ b/ghc/compiler/coreSyn/CorePrep.lhs @@ -25,7 +25,7 @@ import Id ( mkSysLocal, idType, idNewDemandInfo, idArity, isLocalId, hasNoBinding, idNewStrictness, isDataConId_maybe, idUnfolding ) -import HscTypes ( ModDetails(..), implicitTyThingIds, typeEnvElts ) +import HscTypes ( ModGuts(..), ModGuts, implicitTyThingIds, typeEnvElts ) import BasicTypes ( TopLevelFlag(..), isTopLevel, isNotTopLevel, RecFlag(..), isNonRec ) @@ -96,23 +96,23 @@ any trivial or useless bindings. -- ----------------------------------------------------------------------------- \begin{code} -corePrepPgm :: DynFlags -> ModDetails -> IO ModDetails -corePrepPgm dflags mod_details +corePrepPgm :: DynFlags -> ModGuts -> IO ModGuts +corePrepPgm dflags mod_impl = do showPass dflags "CorePrep" us <- mkSplitUniqSupply 's' - let implicit_binds = mkImplicitBinds (md_types mod_details) + let implicit_binds = mkImplicitBinds (mg_types mod_impl) -- NB: we must feed mkImplicitBinds through corePrep too -- so that they are suitably cloned and eta-expanded binds_out = initUs_ us ( - corePrepTopBinds (md_binds mod_details) `thenUs` \ floats1 -> - corePrepTopBinds implicit_binds `thenUs` \ floats2 -> + corePrepTopBinds (mg_binds mod_impl) `thenUs` \ floats1 -> + corePrepTopBinds implicit_binds `thenUs` \ floats2 -> returnUs (deFloatTop (floats1 `appOL` floats2)) ) endPass dflags "CorePrep" Opt_D_dump_prep binds_out - return (mod_details { md_binds = binds_out }) + return (mod_impl { mg_binds = binds_out }) corePrepExpr :: DynFlags -> CoreExpr -> IO CoreExpr corePrepExpr dflags expr