\begin{code}
module LoadIface (
- loadHomeInterface, loadInterface, loadWiredInHomeIface,
- loadSrcInterface, loadOrphanModules,
+ loadInterface, loadHomeInterface, loadWiredInHomeIface,
+ loadSrcInterface, loadSysInterface, loadOrphanModules,
findAndReadIface, readIface, -- Used when reading the module's old interface
loadDecls, ifaceStats, discardDeclPrags,
initExternalPackageState
import Rules ( extendRuleBaseList, mkRuleBase )
import InstEnv ( emptyInstEnv, extendInstEnvList )
import Name ( Name {-instance NamedThing-}, getOccName,
- nameModule, isInternalName, isWiredInName )
+ nameModule, nameIsLocalOrFrom, isWiredInName )
import NameEnv
import MkId ( seqId )
import Module ( Module, ModLocation(ml_hi_file), emptyModuleEnv,
addBootSuffix_maybe,
- extendModuleEnv, lookupModuleEnv, moduleUserString
+ extendModuleEnv, lookupModuleEnv, moduleString
)
import OccName ( OccName, mkOccEnv, lookupOccEnv, mkClassTyConOcc, mkClassDataConOcc,
mkSuperDictSelOcc, mkDataConWrapperOcc, mkDataConWorkerOcc )
---------------
loadHomeInterface :: SDoc -> Name -> TcRn ModIface
loadHomeInterface doc name
- = ASSERT2( not (isInternalName name), ppr name <+> parens doc )
- initIfaceTcRn $ loadSysInterface doc (nameModule name)
+ = do {
+#ifdef DEBUG
+ -- Should not be called with a name from the module being compiled
+ this_mod <- getModule
+ ; ASSERT2( not (nameIsLocalOrFrom this_mod name), ppr name <+> parens doc )
+#endif
+ initIfaceTcRn $ loadSysInterface doc (nameModule name)
+ }
---------------
loadWiredInHomeIface :: Name -> IfM lcl ()
| otherwise ->
let
- loc_doc = text file_path <+> colon
+ loc_doc = text file_path
in
initIfaceLcl mod loc_doc $ do
-- imported name, to fix the module correctly in the cache
mk_new_bndr mod mb_parent occ
= newGlobalBinder mod occ mb_parent
- (importedSrcLoc (moduleUserString mod))
+ (importedSrcLoc (moduleString mod))
doc = ptext SLIT("Declaration for") <+> ppr (ifName decl)