summaryrefslogtreecommitdiff
path: root/compiler/GHC.hs
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/GHC.hs')
-rw-r--r--compiler/GHC.hs13
1 files changed, 13 insertions, 0 deletions
diff --git a/compiler/GHC.hs b/compiler/GHC.hs
index cc8f93bba0..d6fe5094d5 100644
--- a/compiler/GHC.hs
+++ b/compiler/GHC.hs
@@ -325,6 +325,7 @@ import qualified GHC.Parser as Parser
import GHC.Parser.Lexer
import GHC.Parser.Annotation
import GHC.Parser.Errors.Ppr
+import GHC.Parser.Utils
import GHC.Iface.Load ( loadSysInterface )
import GHC.Hs
@@ -1347,6 +1348,18 @@ getPackageModuleInfo hsc_env mdl
minf_modBreaks = emptyModBreaks
}))
+availsToGlobalRdrEnv :: ModuleName -> [AvailInfo] -> GlobalRdrEnv
+availsToGlobalRdrEnv mod_name avails
+ = mkGlobalRdrEnv (gresFromAvails (Just imp_spec) avails)
+ where
+ -- We're building a GlobalRdrEnv as if the user imported
+ -- all the specified modules into the global interactive module
+ imp_spec = ImpSpec { is_decl = decl, is_item = ImpAll}
+ decl = ImpDeclSpec { is_mod = mod_name, is_as = mod_name,
+ is_qual = False,
+ is_dloc = srcLocSpan interactiveSrcLoc }
+
+
getHomeModuleInfo :: HscEnv -> Module -> IO (Maybe ModuleInfo)
getHomeModuleInfo hsc_env mdl =
case lookupHpt (hsc_HPT hsc_env) (moduleName mdl) of