GenAvailInfo(..), AvailInfo, RdrAvailInfo,
IfaceExport,
- Deprecations, DeprecTxt, lookupDeprec, plusDeprecs,
+ Deprecations, DeprecTxt, plusDeprecs,
PackageInstEnv, PackageRuleBase,
, mod /= moduleName gHC_PRIM
-- Look it up in the HPT
- , let mod_info = case lookupUFM hpt mod of
- Nothing -> pprPanic "hptRules" (ppr mod <+> ppr deps)
- Just x -> x
+ , let rules = case lookupUFM hpt mod of
+ Just info -> md_rules (hm_details info)
+ Nothing -> pprTrace "WARNING in hptRules" msg []
+ msg = vcat [ptext SLIT("missing module") <+> ppr mod,
+ ptext SLIT("Probable cause: out-of-date interface files")]
+ -- This really shouldn't happen, but see Trac #962
-- And get its dfuns
- , rule <- md_rules (hm_details mod_info) ]
+ , rule <- rules ]
\end{code}
%************************************************************************
emptyIfaceDepCache :: Name -> Maybe DeprecTxt
emptyIfaceDepCache n = Nothing
-lookupDeprec :: Deprecations -> Name -> Maybe DeprecTxt
-lookupDeprec NoDeprecs name = Nothing
-lookupDeprec (DeprecAll txt) name = Just txt
-lookupDeprec (DeprecSome env) name = case lookupNameEnv env name of
- Just (_, txt) -> Just txt
- Nothing -> Nothing
-
plusDeprecs :: Deprecations -> Deprecations -> Deprecations
plusDeprecs d NoDeprecs = d
plusDeprecs NoDeprecs d = d