summaryrefslogtreecommitdiff
path: root/compiler/GHC/Tc/Plugin.hs
diff options
context:
space:
mode:
authorSylvain Henry <sylvain@haskus.fr>2021-08-06 18:35:06 +0200
committerMarge Bot <ben+marge-bot@smart-cactus.org>2021-11-20 05:35:42 -0500
commitbdeea37efc76bc22a0d2e17f66dbf2ae8ad556fc (patch)
treeed1e62d7f2d34e4c77ff650828de872fb8daeb7a /compiler/GHC/Tc/Plugin.hs
parent3d6b78dbd19f9061387c60e553638f9c26839d50 (diff)
downloadhaskell-bdeea37efc76bc22a0d2e17f66dbf2ae8ad556fc.tar.gz
More support for optional home-unit
This is a preliminary refactoring for #14335 (supporting plugins in cross-compilers). In many places the home-unit must be optional because there won't be one available in the plugin environment (we won't be compiling anything in this environment). Hence we replace "HomeUnit" with "Maybe HomeUnit" in a few places and we avoid the use of "hsc_home_unit" (which is partial) in some few others.
Diffstat (limited to 'compiler/GHC/Tc/Plugin.hs')
-rw-r--r--compiler/GHC/Tc/Plugin.hs15
1 files changed, 8 insertions, 7 deletions
diff --git a/compiler/GHC/Tc/Plugin.hs b/compiler/GHC/Tc/Plugin.hs
index f2d9521a8c..5a4f9a8deb 100644
--- a/compiler/GHC/Tc/Plugin.hs
+++ b/compiler/GHC/Tc/Plugin.hs
@@ -73,6 +73,7 @@ import GHC.Tc.Types.Evidence ( CoercionHole, EvTerm(..)
, EvExpr, EvBindsVar, EvBind, mkGivenEvBind )
import GHC.Types.Var ( EvVar )
+import GHC.Unit.Env
import GHC.Unit.Module ( ModuleName, Module )
import GHC.Types.Name ( OccName, Name )
import GHC.Types.TyThing ( TyThing )
@@ -81,7 +82,7 @@ import GHC.Core.TyCon ( TyCon )
import GHC.Core.DataCon ( DataCon )
import GHC.Core.Class ( Class )
import GHC.Driver.Config.Finder ( initFinderOpts )
-import GHC.Driver.Env ( HscEnv(..), hsc_home_unit, hsc_units )
+import GHC.Driver.Env ( HscEnv(..), hsc_units )
import GHC.Utils.Outputable ( SDoc )
import GHC.Core.Type ( Kind, Type, PredType )
import GHC.Types.Id ( Id )
@@ -102,12 +103,12 @@ tcPluginTrace a b = unsafeTcPluginTcM (traceTc a b)
findImportedModule :: ModuleName -> PkgQual -> TcPluginM Finder.FindResult
findImportedModule mod_name mb_pkg = do
hsc_env <- getTopEnv
- let fc = hsc_FC hsc_env
- let home_unit = hsc_home_unit hsc_env
- let units = hsc_units hsc_env
- let dflags = hsc_dflags hsc_env
- let fopts = initFinderOpts dflags
- tcPluginIO $ Finder.findImportedModule fc fopts units home_unit mod_name mb_pkg
+ let fc = hsc_FC hsc_env
+ let mhome_unit = ue_home_unit (hsc_unit_env hsc_env)
+ let units = hsc_units hsc_env
+ let dflags = hsc_dflags hsc_env
+ let fopts = initFinderOpts dflags
+ tcPluginIO $ Finder.findImportedModule fc fopts units mhome_unit mod_name mb_pkg
lookupOrig :: Module -> OccName -> TcPluginM Name
lookupOrig mod = unsafeTcPluginTcM . IfaceEnv.lookupOrig mod