- hide occ env
- | Just gres <- lookupOccEnv env occ = extendOccEnv env occ (map qual_gre gres)
- | otherwise = env
- qual_gre gre@(GRE { gre_name = name, gre_prov = LocalDef })
- = gre { gre_prov = Imported [imp_spec] }
- where -- Local defs get transfomed to (fake) imported things
- mod = ASSERT2( isExternalName name, ppr name) moduleName (nameModule name)
- imp_spec = ImpSpec { is_item = ImpAll, is_decl = decl_spec }
- decl_spec = ImpDeclSpec { is_mod = mod, is_as = mod,
- is_qual = True,
- is_dloc = srcLocSpan (nameSrcLoc name) }
-
- qual_gre gre@(GRE { gre_prov = Imported specs })
- = gre { gre_prov = Imported (map qual_spec specs) }
-
- qual_spec spec@(ImpSpec { is_decl = decl_spec })
- = spec { is_decl = decl_spec { is_qual = True } }