Safe Haskell | None |
---|---|
Language | Haskell2010 |
GHC.Unit.Finder
Description
Module finder
Synopsis
- data FindResult
- = Found ModLocation Module
- | NoPackage Unit
- | FoundMultiple [(Module, ModuleOrigin)]
- | NotFound {
- fr_paths :: [FilePath]
- fr_pkg :: Maybe Unit
- fr_mods_hidden :: [Unit]
- fr_pkgs_hidden :: [Unit]
- fr_unusables :: [(Unit, UnusableUnitReason)]
- fr_suggestions :: [ModuleSuggestion]
- data InstalledFindResult
- = InstalledFound ModLocation InstalledModule
- | InstalledNoPackage UnitId
- | InstalledNotFound [FilePath] (Maybe UnitId)
- data FinderCache
- initFinderCache :: IO FinderCache
- flushFinderCaches :: FinderCache -> HomeUnit -> IO ()
- findImportedModule :: FinderCache -> UnitState -> HomeUnit -> DynFlags -> ModuleName -> Maybe FastString -> IO FindResult
- findPluginModule :: FinderCache -> UnitState -> HomeUnit -> DynFlags -> ModuleName -> IO FindResult
- findExactModule :: FinderCache -> DynFlags -> UnitState -> HomeUnit -> InstalledModule -> IO InstalledFindResult
- findHomeModule :: FinderCache -> HomeUnit -> DynFlags -> ModuleName -> IO FindResult
- findExposedPackageModule :: FinderCache -> UnitState -> DynFlags -> ModuleName -> Maybe FastString -> IO FindResult
- mkHomeModLocation :: DynFlags -> ModuleName -> FilePath -> IO ModLocation
- mkHomeModLocation2 :: DynFlags -> ModuleName -> FilePath -> String -> IO ModLocation
- mkHiOnlyModLocation :: DynFlags -> Suffix -> FilePath -> String -> IO ModLocation
- mkHiPath :: DynFlags -> FilePath -> String -> FilePath
- mkObjPath :: DynFlags -> FilePath -> String -> FilePath
- addHomeModuleToFinder :: FinderCache -> HomeUnit -> ModuleName -> ModLocation -> IO Module
- uncacheModule :: FinderCache -> HomeUnit -> ModuleName -> IO ()
- mkStubPaths :: DynFlags -> ModuleName -> ModLocation -> FilePath
- findObjectLinkableMaybe :: Module -> ModLocation -> IO (Maybe Linkable)
- findObjectLinkable :: Module -> FilePath -> UTCTime -> IO Linkable
Documentation
data FindResult #
Constructors
Found ModLocation Module | |
NoPackage Unit | |
FoundMultiple [(Module, ModuleOrigin)] | |
NotFound | |
Fields
|
data InstalledFindResult #
Constructors
InstalledFound ModLocation InstalledModule | |
InstalledNoPackage UnitId | |
InstalledNotFound [FilePath] (Maybe UnitId) |
data FinderCache #
flushFinderCaches :: FinderCache -> HomeUnit -> IO () Source #
findImportedModule :: FinderCache -> UnitState -> HomeUnit -> DynFlags -> ModuleName -> Maybe FastString -> IO FindResult Source #
Locate a module that was imported by the user. We have the module's name, and possibly a package name. Without a package name, this function will use the search path and the known exposed packages to find the module, if a package is specified then only that package is searched for the module.
findPluginModule :: FinderCache -> UnitState -> HomeUnit -> DynFlags -> ModuleName -> IO FindResult Source #
Locate a plugin module requested by the user, for a compiler
plugin. This consults the same set of exposed packages as
findImportedModule
, unless -hide-all-plugin-packages
or
-plugin-package
are specified.
findExactModule :: FinderCache -> DynFlags -> UnitState -> HomeUnit -> InstalledModule -> IO InstalledFindResult Source #
Locate a specific Module
. The purpose of this function is to
create a ModLocation
for a given Module
, that is to find out
where the files associated with this module live. It is used when
reading the interface for a module mentioned by another interface,
for example (a "system import").
findHomeModule :: FinderCache -> HomeUnit -> DynFlags -> ModuleName -> IO FindResult Source #
findExposedPackageModule :: FinderCache -> UnitState -> DynFlags -> ModuleName -> Maybe FastString -> IO FindResult Source #
mkHomeModLocation :: DynFlags -> ModuleName -> FilePath -> IO ModLocation Source #
mkHomeModLocation2 :: DynFlags -> ModuleName -> FilePath -> String -> IO ModLocation Source #
mkHiOnlyModLocation :: DynFlags -> Suffix -> FilePath -> String -> IO ModLocation Source #
mkHiPath :: DynFlags -> FilePath -> String -> FilePath Source #
Constructs the filename of a .hi file for a given source file. Does not check whether the .hi file exists
mkObjPath :: DynFlags -> FilePath -> String -> FilePath Source #
Constructs the filename of a .o file for a given source file. Does not check whether the .o file exists
addHomeModuleToFinder :: FinderCache -> HomeUnit -> ModuleName -> ModLocation -> IO Module Source #
uncacheModule :: FinderCache -> HomeUnit -> ModuleName -> IO () Source #
mkStubPaths :: DynFlags -> ModuleName -> ModLocation -> FilePath Source #
findObjectLinkableMaybe :: Module -> ModLocation -> IO (Maybe Linkable) Source #