X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=compiler%2Ftypecheck%2FTcRnMonad.lhs;h=3272dea69be6c42b2ebb7d85580a7787bf066f63;hp=9da9dc9ae7bc4ae6196d7966547f0ec663de1b02;hb=b00b5bc04ff36a551552470060064f0b7d84ca30;hpb=138b885a335734039daf7debb0a7dfc3dc947c00 diff --git a/compiler/typecheck/TcRnMonad.lhs b/compiler/typecheck/TcRnMonad.lhs index 9da9dc9..3272dea 100644 --- a/compiler/typecheck/TcRnMonad.lhs +++ b/compiler/typecheck/TcRnMonad.lhs @@ -22,7 +22,7 @@ import NameEnv ( mkNameEnv ) import TcEnv ( tcExtendIdEnv ) #endif -import HsSyn ( emptyLHsBinds ) +import HsSyn ( emptyLHsBinds, HaddockModInfo(..) ) import HscTypes ( HscEnv(..), ModGuts(..), ModIface(..), TypeEnv, emptyTypeEnv, HscSource(..), isHsBoot, ExternalPackageState(..), HomePackageTable, @@ -32,12 +32,13 @@ import Module ( Module, moduleName ) import RdrName ( GlobalRdrEnv, LocalRdrEnv, emptyLocalRdrEnv ) import Name ( Name, mkInternalName, tidyNameOcc, nameOccName, getSrcLoc ) import Type ( Type ) -import TcType ( tcIsTyVarTy, tcGetTyVar ) +import TcType ( TcType, tcIsTyVarTy, tcGetTyVar ) import NameEnv ( extendNameEnvList, nameEnvElts ) import InstEnv ( emptyInstEnv ) import FamInstEnv ( emptyFamInstEnv ) import Var ( setTyVarName ) +import Id ( mkSysLocal ) import VarSet ( emptyVarSet ) import VarEnv ( TidyEnv, emptyTidyEnv, extendVarEnv ) import ErrUtils ( Message, Messages, emptyMessages, errorsFound, @@ -49,12 +50,13 @@ import NameSet ( NameSet, emptyDUs, emptyNameSet, unionNameSets, addOneToNameSe import OccName ( emptyOccEnv, tidyOccName ) import Bag ( emptyBag ) import Outputable -import UniqSupply ( UniqSupply, mkSplitUniqSupply, uniqFromSupply, splitUniqSupply ) +import UniqSupply ( UniqSupply, mkSplitUniqSupply, uniqFromSupply, uniqsFromSupply, splitUniqSupply ) import UniqFM ( unitUFM ) import Unique ( Unique ) import DynFlags ( DynFlags(..), DynFlag(..), dopt, dopt_set, dopt_unset, GhcMode ) import StaticFlags ( opt_PprStyle_Debug ) +import FastString ( FastString ) import Bag ( snocBag, unionBags ) import Panic ( showException ) @@ -106,7 +108,7 @@ initTc hsc_env hsc_src mod do_this tcg_fam_inst_env = emptyFamInstEnv, tcg_inst_uses = dfuns_var, tcg_th_used = th_var, - tcg_exports = emptyNameSet, + tcg_exports = [], tcg_imports = init_imports, tcg_dus = emptyDUs, tcg_rn_imports = Nothing, @@ -115,10 +117,13 @@ initTc hsc_env hsc_src mod do_this tcg_binds = emptyLHsBinds, tcg_deprecs = NoDeprecs, tcg_insts = [], + tcg_fam_insts= [], tcg_rules = [], tcg_fords = [], tcg_dfun_n = dfun_n_var, - tcg_keep = keep_var + tcg_keep = keep_var, + tcg_doc = Nothing, + tcg_hmi = HaddockModInfo Nothing Nothing Nothing Nothing } ; lcl_env = TcLclEnv { tcl_errs = errs_var, @@ -151,8 +156,7 @@ initTc hsc_env hsc_src mod do_this return (msgs, final_res) } where - init_imports = emptyImportAvails {imp_env = - unitUFM (moduleName mod) emptyNameSet} + init_imports = emptyImportAvails {imp_env = unitUFM (moduleName mod) []} -- Initialise tcg_imports with an empty set of bindings for -- this module, so that if we see 'module M' in the export -- list, and there are no bindings in M, we don't bleat @@ -357,8 +361,13 @@ newUniqueSupply newLocalName :: Name -> TcRnIf gbl lcl Name newLocalName name -- Make a clone - = newUnique `thenM` \ uniq -> - returnM (mkInternalName uniq (nameOccName name) (getSrcLoc name)) + = do { uniq <- newUnique + ; return (mkInternalName uniq (nameOccName name) (getSrcLoc name)) } + +newSysLocalIds :: FastString -> [TcType] -> TcRnIf gbl lcl [TcId] +newSysLocalIds fs tys + = do { us <- newUniqueSupply + ; return (zipWith (mkSysLocal fs) (uniqsFromSupply us) tys) } \end{code}