summaryrefslogtreecommitdiff
path: root/ghc
diff options
context:
space:
mode:
Diffstat (limited to 'ghc')
-rw-r--r--ghc/GHCi/UI/Info.hs6
-rw-r--r--ghc/GHCi/UI/Monad.hs7
2 files changed, 8 insertions, 5 deletions
diff --git a/ghc/GHCi/UI/Info.hs b/ghc/GHCi/UI/Info.hs
index 0f78fa5075..505a1da68f 100644
--- a/ghc/GHCi/UI/Info.hs
+++ b/ghc/GHCi/UI/Info.hs
@@ -59,7 +59,7 @@ data ModInfo = ModInfo
-- ^ Generated set of information about all spans in the
-- module that correspond to some kind of identifier for
-- which there will be type info and/or location info.
- , modinfoRdrEnv :: !(Strict.Maybe GlobalRdrEnv)
+ , modinfoRdrEnv :: !(Strict.Maybe IfGlobalRdrEnv)
-- ^ What's in scope in the module.
, modinfoLastUpdate :: !UTCTime
-- ^ The timestamp of the file used to generate this record.
@@ -316,6 +316,8 @@ getModInfo name = do
module_info = tm_checked_module_info typechecked
!rdr_env = case modInfoRdrEnv module_info of
Just rdrs -> Strict.Just rdrs
+ -- NB: this has already been deeply forced; no need to do that again.
+ -- See test case T15369 and Note [Forcing GREInfo] in GHC.Types.GREInfo.
Nothing -> Strict.Nothing
ts <- liftIO $ getModificationTime $ srcFilePath m
return $
@@ -331,7 +333,7 @@ modInfo_rdrs :: ModInfo -> [Name]
modInfo_rdrs mi =
case modinfoRdrEnv mi of
Strict.Nothing -> []
- Strict.Just env -> map greMangledName $ globalRdrEnvElts env
+ Strict.Just env -> map greName $ globalRdrEnvElts env
-- | Get ALL source spans in the module.
processAllTypeCheckedModule :: TypecheckedModule -> [SpanInfo]
diff --git a/ghc/GHCi/UI/Monad.hs b/ghc/GHCi/UI/Monad.hs
index 3016dd66d5..5b360f7400 100644
--- a/ghc/GHCi/UI/Monad.hs
+++ b/ghc/GHCi/UI/Monad.hs
@@ -51,7 +51,7 @@ import GHC.Types.SafeHaskell
import GHC.Driver.Make (ModIfaceCache(..))
import GHC.Unit
import GHC.Types.Name.Reader as RdrName (mkOrig)
-import qualified GHC.Types.Name.Ppr as Ppr (mkNamePprCtx )
+import qualified GHC.Types.Name.Ppr as Ppr (mkNamePprCtx)
import GHC.Builtin.Names (gHC_GHCI_HELPERS)
import GHC.Runtime.Interpreter
import GHC.Runtime.Context
@@ -367,10 +367,11 @@ printForUserNeverQualify doc = do
printForUserModInfo :: GhcMonad m => GHC.ModuleInfo -> SDoc -> m ()
printForUserModInfo info = printForUserGlobalRdrEnv (GHC.modInfoRdrEnv info)
-printForUserGlobalRdrEnv :: GhcMonad m => Maybe GlobalRdrEnv -> SDoc -> m ()
+printForUserGlobalRdrEnv :: (GhcMonad m, Outputable info)
+ => Maybe (GlobalRdrEnvX info) -> SDoc -> m ()
printForUserGlobalRdrEnv mb_rdr_env doc = do
dflags <- GHC.getInteractiveDynFlags
- name_ppr_ctx <- mkNamePprCtxFromGlobalRdrEnv dflags mb_rdr_env
+ name_ppr_ctx <- mkNamePprCtxFromGlobalRdrEnv dflags mb_rdr_env
liftIO $ Ppr.printForUser dflags stdout name_ppr_ctx AllTheWay doc
where
mkNamePprCtxFromGlobalRdrEnv _ Nothing = GHC.getNamePprCtx