ghc-9.6.3: The GHC API

Safe Haskell | Safe-Inferred
Language | Haskell2010

GHC.Rename.Names

Synopsis

- rnImports :: [(LImportDecl GhcPs, SDoc)] -> RnM ([LImportDecl GhcRn], GlobalRdrEnv, ImportAvails, AnyHpcUsage)
- getLocalNonValBinders :: MiniFixityEnv -> HsGroup GhcPs -> RnM ((TcGblEnv, TcLclEnv), NameSet)
- newRecordSelector :: DuplicateRecordFields -> FieldSelectors -> [Name] -> LFieldOcc GhcPs -> RnM FieldLabel
- extendGlobalRdrEnvRn :: [AvailInfo] -> MiniFixityEnv -> RnM (TcGblEnv, TcLclEnv)
- gresFromAvails :: Maybe ImportSpec -> [AvailInfo] -> [GlobalRdrElt]
- calculateAvails :: HomeUnit -> Set UnitId -> ModIface -> IsSafeImport -> IsBootInterface -> ImportedBy -> ImportAvails
- reportUnusedNames :: TcGblEnv -> HscSource -> RnM ()
- checkConName :: RdrName -> TcRn ()
- mkChildEnv :: [GlobalRdrElt] -> NameEnv [GlobalRdrElt]
- findChildren :: NameEnv [a] -> Name -> [a]
- findImportUsage :: [LImportDecl GhcRn] -> [GlobalRdrElt] -> [ImportDeclUsage]
- getMinimalImports :: [ImportDeclUsage] -> RnM [LImportDecl GhcRn]
- printMinimalImports :: HscSource -> [ImportDeclUsage] -> RnM ()
- renamePkgQual :: UnitEnv -> ModuleName -> Maybe FastString -> PkgQual
- renameRawPkgQual :: UnitEnv -> ModuleName -> RawPkgQual -> PkgQual
- type ImportDeclUsage = (LImportDecl GhcRn, [GlobalRdrElt], [Name])

# Documentation

rnImports :: [(LImportDecl GhcPs, SDoc)] -> RnM ([LImportDecl GhcRn], GlobalRdrEnv, ImportAvails, AnyHpcUsage) Source #

Process Import Decls. See `rnImportDecl` for a description of what the return types represent. Note: Do the non SOURCE ones first, so that we get a helpful warning for SOURCE ones that are unnecessary

getLocalNonValBinders :: MiniFixityEnv -> HsGroup GhcPs -> RnM ((TcGblEnv, TcLclEnv), NameSet) Source #

newRecordSelector :: DuplicateRecordFields -> FieldSelectors -> [Name] -> LFieldOcc GhcPs -> RnM FieldLabel Source #

extendGlobalRdrEnvRn :: [AvailInfo] -> MiniFixityEnv -> RnM (TcGblEnv, TcLclEnv) Source #

gresFromAvails :: Maybe ImportSpec -> [AvailInfo] -> [GlobalRdrElt] Source #

make a `GlobalRdrEnv` where all the elements point to the same Provenance (useful for "hiding" imports, or imports with no details).

calculateAvails :: HomeUnit -> Set UnitId -> ModIface -> IsSafeImport -> IsBootInterface -> ImportedBy -> ImportAvails Source #

Calculate the `ImportAvails` induced by an import of a particular interface, but without `imp_mods`.

reportUnusedNames :: TcGblEnv -> HscSource -> RnM () Source #

checkConName :: RdrName -> TcRn () Source #

mkChildEnv :: [GlobalRdrElt] -> NameEnv [GlobalRdrElt] Source #

findChildren :: NameEnv [a] -> Name -> [a] Source #

findImportUsage :: [LImportDecl GhcRn] -> [GlobalRdrElt] -> [ImportDeclUsage] Source #

getMinimalImports :: [ImportDeclUsage] -> RnM [LImportDecl GhcRn] Source #

printMinimalImports :: HscSource -> [ImportDeclUsage] -> RnM () Source #

renamePkgQual :: UnitEnv -> ModuleName -> Maybe FastString -> PkgQual Source #

Rename raw package imports

renameRawPkgQual :: UnitEnv -> ModuleName -> RawPkgQual -> PkgQual Source #

Rename raw package imports

type ImportDeclUsage = (LImportDecl GhcRn, [GlobalRdrElt], [Name]) Source #