X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;ds=inline;f=ghc%2Fcompiler%2Ftypecheck%2FTcRnMonad.lhs;h=22eae1b44c9d8c8a6caed22d54f1b8bbadc6b6b7;hb=e0445ffa5a89632b542e7d7bc2ad46d944716453;hp=f450dcfbad33c6f0d3f9e14d507ef8f4da80ad62;hpb=8c1b6bd7ffb9ce97da7a72f9e102998df19b23a2;p=ghc-hetmet.git diff --git a/ghc/compiler/typecheck/TcRnMonad.lhs b/ghc/compiler/typecheck/TcRnMonad.lhs index f450dcf..22eae1b 100644 --- a/ghc/compiler/typecheck/TcRnMonad.lhs +++ b/ghc/compiler/typecheck/TcRnMonad.lhs @@ -14,7 +14,7 @@ import HscTypes ( HscEnv(..), PersistentCompilerState(..), GlobalRdrEnv, LocalRdrEnv, NameCache, FixityEnv, GhciMode, lookupType, unQualInScope ) import TcRnTypes -import Module ( Module, foldModuleEnv ) +import Module ( Module, moduleName, unitModuleEnv, foldModuleEnv ) import Name ( Name, isInternalName ) import Type ( Type ) import NameEnv ( extendNameEnvList ) @@ -140,7 +140,7 @@ initTc (HscEnv { hsc_mode = ghci_mode, tcg_ist = mkImpTypeEnv eps hpt, tcg_inst_env = mkImpInstEnv dflags eps hpt, tcg_exports = [], - tcg_imports = emptyImportAvails, + tcg_imports = init_imports, tcg_binds = EmptyMonoBinds, tcg_deprecs = NoDeprecs, tcg_insts = [], @@ -177,6 +177,12 @@ initTc (HscEnv { hsc_mode = ghci_mode, where eps = pcs_EPS pcs + init_imports = emptyImportAvails { imp_unqual = unitModuleEnv mod emptyAvailEnv } + -- 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 + -- "unknown module M". + defaultDefaultTys :: [Type] defaultDefaultTys = [integerTy, doubleTy] @@ -276,6 +282,9 @@ getModule = do { env <- getGblEnv; return (tcg_mod env) } getGlobalRdrEnv :: TcRn m GlobalRdrEnv getGlobalRdrEnv = do { env <- getGblEnv; return (tcg_rdr_env env) } +getImports :: TcRn m ImportAvails +getImports = do { env <- getGblEnv; return (tcg_imports env) } + getFixityEnv :: TcRn m FixityEnv getFixityEnv = do { env <- getGblEnv; return (tcg_fix_env env) } @@ -289,13 +298,13 @@ getDefaultTys = do { env <- getGblEnv; return (tcg_default env) } \end{code} \begin{code} -getUsageVar :: TcRn m (TcRef Usages) +getUsageVar :: TcRn m (TcRef EntityUsage) getUsageVar = do { env <- getGblEnv; return (tcg_usages env) } -getUsages :: TcRn m Usages +getUsages :: TcRn m EntityUsage getUsages = do { usg_var <- getUsageVar; readMutVar usg_var } -updUsages :: (Usages -> Usages) -> TcRn m () +updUsages :: (EntityUsage -> EntityUsage) -> TcRn m () updUsages upd = do { usg_var <- getUsageVar ; usg <- readMutVar usg_var ; writeMutVar usg_var (upd usg) } @@ -528,6 +537,7 @@ setNameCache nc = do { TopEnv { top_nc = nc_var } <- getTopEnv; traceTc, traceRn :: SDoc -> TcRn a () traceRn = dumpOptTcRn Opt_D_dump_rn_trace traceTc = dumpOptTcRn Opt_D_dump_tc_trace +traceSplice = dumpOptTcRn Opt_D_dump_splices traceHiDiffs = dumpOptTcRn Opt_D_dump_hi_diffs dumpOptTcRn :: DynFlag -> SDoc -> TcRn a ()