WhetherHasOrphans, ImportVersion, WhatsImported(..),
PersistentRenamerState(..), IsBootInterface, Avails, DeclsMap,
- IfaceInsts, IfaceRules, Deprecations(..), GatedDecl,
+ IfaceInsts, IfaceRules, GatedDecl,
OrigNameEnv(..), OrigNameNameEnv, OrigNameIParamEnv,
AvailEnv, AvailInfo, GenAvailInfo(..),
PersistentCompilerState(..),
+ Deprecations(..), lookupDeprec,
+
InstEnv, ClsInstEnv, DFunId,
GlobalRdrEnv, RdrAvailInfo,
| DeprecSome (NameEnv DeprecTxt) -- Some things deprecated
-- Just "big" names
+lookupDeprec :: ModIface -> Name -> Maybe DeprecTxt
+lookupDeprec iface name
+ = case mi_deprecs iface of
+ NoDeprecs -> Nothing
+ DeprecAll txt -> Just txt
+ DeprecSome env -> lookupNameEnv env name
+
type InstEnv = UniqFM ClsInstEnv -- Maps Class to instances for that class
type ClsInstEnv = [(TyVarSet, [Type], DFunId)] -- The instances for a particular class
type DFunId = Id
import HscTypes ( Finder, PersistentCompilerState, HomeIfaceTable, HomeSymbolTable,
ModIface(..), TyThing(..),
GlobalRdrEnv, AvailEnv, Avails, GenAvailInfo(..), AvailInfo,
- Provenance(..), pprNameProvenance, ImportReason(..) )
+ Provenance(..), pprNameProvenance, ImportReason(..),
+ lookupDeprec
+ )
import List ( partition, nub )
\end{code}
not (maybeToBool (lookupFM minimal_imports m)),
m /= pRELUDE_Name]
- module_unused :: ModuleName -> Bool
- module_unused mod = mod `elem` unused_imp_mods
+ module_unused :: Module -> Bool
+ module_unused mod = moduleName mod `elem` unused_imp_mods
warnDeprecations used_names
where
lookup_deprec hit pit n
= case lookupModuleEnv hit mod of
- Just iface -> lookup_iface iface n
+ Just iface -> lookupDeprec iface n
Nothing -> case lookupModuleEnv pit mod of
- Just iface -> lookup_iface iface n
+ Just iface -> lookupDeprec iface n
Nothing -> pprPanic "warnDeprecations:" (ppr n)
where
mod = nameModule n
- lookup_iface iface n = lookupNameEnv (mi_deprecs iface) n
-
-- ToDo: deal with original imports with 'qualified' and 'as M' clauses
printMinimalImports mod_name imps
= doptRn Opt_D_dump_minimal_imports `thenRn` \ dump_minimal ->