import RdrHsSyn ( RdrNameHsModule(..), RdrNameImportDecl(..) )
import RnHsSyn ( RnName, RenamedHsModule(..), isRnTyCon, isRnClass )
+import ParseIface ( ParsedIface )
import RnMonad
import RnNames ( getGlobalNames, GlobalNameInfo(..) )
import RnSource ( rnSource )
-import RnIfaces ( rnInterfaces, finalIfaceInfo, VersionInfo(..), ParsedIface )
+import RnIfaces ( findHiFiles, rnIfaces, finalIfaceInfo, VersionInfo(..) )
import RnUtils ( extendGlobalRnEnv, emptyRnEnv, multipleOccWarn )
import MainMonad
import Bag ( isEmptyBag, unionBags, bagToList, listToBag )
+import CmdLineOpts ( opt_HiDirList, opt_SysHiDirList )
import ErrUtils ( Error(..), Warning(..) )
import FiniteMap ( emptyFM, eltsFM )
import Name ( getOrigNameRdr, isLocallyDefined, Name, RdrName(..) )
import UniqFM ( emptyUFM, lookupUFM, addListToUFM_C, eltsUFM )
import UniqSupply ( splitUniqSupply )
import Util ( panic, assertPanic )
-
-findHiFiles :: PrimIO (FiniteMap Module FAST_STRING)
-findHiFiles = returnPrimIO emptyFM
\end{code}
\begin{code}
\begin{code}
renameModule b_names b_keys us
input@(HsModule mod _ _ imports _ _ _ _ _ _ _ _ _ _)
- = findHiFiles `thenPrimIO` \ hi_files ->
- newVar (emptyFM, hi_files) `thenPrimIO` \ iface_var ->
+
+ = findHiFiles opt_HiDirList opt_SysHiDirList `thenMn` \ hi_files ->
+ newVar (emptyFM, hi_files) `thenPrimIO` \ iface_var ->
fixPrimIO ( \ ~(_, _, _, _, rec_occ_fm, rec_export_fn) ->
let
global_name_info = (b_names, b_keys, rec_export_fn, rec_occ_fn)
in
getGlobalNames iface_var global_name_info us1 input
- `thenPrimIO` \ (occ_env, imp_mods, imp_fixes, top_errs, top_warns) ->
+ `thenPrimIO` \ (occ_env, imp_mods, unqual_imps, imp_fixes, top_errs, top_warns) ->
if not (isEmptyBag top_errs) then
returnPrimIO (rn_panic, rn_panic, top_errs, top_warns, emptyUFM, rn_panic)
-- No top-level name errors so rename source ...
case initRn True mod occ_env us2
- (rnSource imp_mods imp_fixes input) of {
+ (rnSource imp_mods unqual_imps imp_fixes input) of {
((rn_module, export_fn, src_occs), src_errs, src_warns) ->
let
-- ToDo: Do we need top-level names from this module in orig_env ???
in
ASSERT (isEmptyBag orig_dups)
- rnInterfaces iface_var orig_env us3 rn_module imports_used
+ rnIfaces iface_var orig_env us3 rn_module imports_used
`thenPrimIO` \ (rn_module_with_imports,
(implicit_val_fm, implicit_tc_fm),
iface_errs, iface_warns) ->