summaryrefslogtreecommitdiff
path: root/compiler/GHC/Tc/Utils/Backpack.hs
diff options
context:
space:
mode:
authorSylvain Henry <sylvain@haskus.fr>2020-11-12 10:36:58 +0100
committerSylvain Henry <sylvain@haskus.fr>2020-12-14 19:45:13 +0100
commitd0e8c10d587e4b9984526d0dfcfcb258b75733b8 (patch)
treee0993719d76f87a0f4f8eccef089526217bf5bb4 /compiler/GHC/Tc/Utils/Backpack.hs
parent92377c27e1a48d0d3776f65c7074dfeb122b46db (diff)
downloadhaskell-d0e8c10d587e4b9984526d0dfcfcb258b75733b8.tar.gz
Move Unit related fields from DynFlags to HscEnv
The unit database cache, the home unit and the unit state were stored in DynFlags while they ought to be stored in the compiler session state (HscEnv). This patch fixes this. It introduces a new UnitEnv type that should be used in the future to handle separate unit environments (especially host vs target units). Related to #17957 Bump haddock submodule
Diffstat (limited to 'compiler/GHC/Tc/Utils/Backpack.hs')
-rw-r--r--compiler/GHC/Tc/Utils/Backpack.hs11
1 files changed, 4 insertions, 7 deletions
diff --git a/compiler/GHC/Tc/Utils/Backpack.hs b/compiler/GHC/Tc/Utils/Backpack.hs
index 6214434fce..7fff1a9e35 100644
--- a/compiler/GHC/Tc/Utils/Backpack.hs
+++ b/compiler/GHC/Tc/Utils/Backpack.hs
@@ -19,7 +19,6 @@ module GHC.Tc.Utils.Backpack (
import GHC.Prelude
import GHC.Driver.Env
-import GHC.Driver.Session
import GHC.Driver.Ppr
import GHC.Types.Basic (TypeOrKind(..))
@@ -291,7 +290,7 @@ findExtraSigImports' hsc_env HsigFile modname =
$ moduleFreeHolesPrecise (text "findExtraSigImports")
(mkModule (VirtUnit iuid) mod_name)))
where
- unit_state = unitState (hsc_dflags hsc_env)
+ unit_state = hsc_units hsc_env
reqs = requirementMerges unit_state modname
findExtraSigImports' _ _ _ = return emptyUniqDSet
@@ -360,7 +359,7 @@ tcRnCheckUnit hsc_env uid =
initTc hsc_env
HsigFile -- bogus
False
- (mainModIs dflags)
+ (mainModIs hsc_env)
(realSrcLocSpan (mkRealSrcLoc (fsLit loc_str) 0 0)) -- bogus
$ checkUnit uid
where
@@ -522,7 +521,6 @@ mergeSignatures
-- file, which is guaranteed to exist, see
-- Note [Blank hsigs for all requirements]
hsc_env <- getTopEnv
- dflags <- getDynFlags
-- Copy over some things from the original TcGblEnv that
-- we want to preserve
@@ -552,7 +550,7 @@ mergeSignatures
let outer_mod = tcg_mod tcg_env
inner_mod = tcg_semantic_mod tcg_env
mod_name = moduleName (tcg_mod tcg_env)
- unit_state = unitState dflags
+ unit_state = hsc_units hsc_env
home_unit = hsc_home_unit hsc_env
-- STEP 1: Figure out all of the external signature interfaces
@@ -928,9 +926,8 @@ impl_msg unit_state impl_mod (Module req_uid req_mod_name)
-- explicitly.)
checkImplements :: Module -> InstantiatedModule -> TcRn TcGblEnv
checkImplements impl_mod req_mod@(Module uid mod_name) = do
- dflags <- getDynFlags
hsc_env <- getTopEnv
- let unit_state = unitState dflags
+ let unit_state = hsc_units hsc_env
home_unit = hsc_home_unit hsc_env
addErrCtxt (impl_msg unit_state impl_mod req_mod) $ do
let insts = instUnitInsts uid