import RdrName ( RdrName, rdrNameOcc, setRdrNameSpace, Parent(..),
GlobalRdrEnv, mkGlobalRdrEnv, GlobalRdrElt(..),
emptyGlobalRdrEnv, plusGlobalRdrEnv, globalRdrEnvElts,
- extendGlobalRdrEnv, lookupGlobalRdrEnv, lookupGRE_Name,
+ extendGlobalRdrEnv, lookupGlobalRdrEnv,
+ lookupGRE_RdrName, lookupGRE_Name,
Provenance(..), ImportSpec(..), ImpDeclSpec(..), ImpItemSpec(..),
importSpecLoc, importSpecModule, isLocalGRE, pprNameProvenance,
unQualSpecOK, qualSpecOK )
gres | want_hiding = gresFromAvails hiding_prov pruned_avails
| otherwise = concatMap (gresFromIE decl_spec) items2
- traceRn (ppr $ all_avails)
- traceRn (ppr $ occ_env)
- traceRn (ppr $ items2)
- traceRn (ppr $ mkGlobalRdrEnv gres)
-
return (Just (want_hiding, map fst items2), mkGlobalRdrEnv gres)
where
-- This environment is how we map names mentioned in the import
lookup_ie (IEThingAbs rdr)
= do name <- lookupGlobalOccRn rdr
- return (IEThingAbs name, AvailTC name [name])
+ case lookupGRE_RdrName rdr rdr_env of
+ [] -> panic "RnNames.lookup_ie"
+ elt:_ -> case gre_par elt of
+ NoParent -> return (IEThingAbs name,
+ AvailTC name [name])
+ ParentIs p -> return (IEThingAbs name,
+ AvailTC p [name])
lookup_ie ie@(IEThingAll rdr)
= do name <- lookupGlobalOccRn rdr