ghc-7.0.3: The GHC API

Finder

Synopsis

- flushFinderCaches :: HscEnv -> IO ()
- data FindResult
  - = Found ModLocation Module
  - | NoPackage PackageId
  - | FoundMultiple [PackageId]
  - | NotFound [FilePath] (Maybe PackageId) [PackageId] [PackageId]
  - | NotFoundInPackage PackageId
- findImportedModule :: HscEnv -> ModuleName -> Maybe FastString -> IO FindResult
- findExactModule :: HscEnv -> Module -> IO FindResult
- findHomeModule :: HscEnv -> ModuleName -> IO FindResult
- findExposedPackageModule :: HscEnv -> 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
- addHomeModuleToFinder :: HscEnv -> ModuleName -> ModLocation -> IO Module
- uncacheModule :: HscEnv -> ModuleName -> IO ()
- mkStubPaths :: DynFlags -> ModuleName -> ModLocation -> (FilePath, FilePath, FilePath)
- findObjectLinkableMaybe :: Module -> ModLocation -> IO (Maybe Linkable)
- findObjectLinkable :: Module -> FilePath -> ClockTime -> IO Linkable
- cannotFindModule :: DynFlags -> ModuleName -> FindResult -> SDoc
- cannotFindInterface :: DynFlags -> ModuleName -> FindResult -> SDoc

# Documentation

flushFinderCaches :: HscEnv -> IO ()

data FindResult

The result of searching for an imported module.

Constructors

Found ModLocation Module | The module was found
NoPackage PackageId | The requested package was not found
FoundMultiple [PackageId] | _Error_: both in multiple packages
NotFound [FilePath] (Maybe PackageId) [PackageId] [PackageId] | The module was not found, including either * the specified places were searched * the package that this module should have been in * list of packages in which the module was hidden, * list of hidden packages containing this module
NotFoundInPackage PackageId | The module was not found in this package

findImportedModule :: HscEnv -> ModuleName -> Maybe FastString -> IO FindResult

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.

findExactModule :: HscEnv -> Module -> IO FindResult

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 :: HscEnv -> ModuleName -> IO FindResult

Search for a module in the home package only.

findExposedPackageModule :: HscEnv -> 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

addHomeModuleToFinder :: HscEnv -> ModuleName -> ModLocation -> IO Module

uncacheModule :: HscEnv -> ModuleName -> IO ()

mkStubPaths :: DynFlags -> ModuleName -> ModLocation -> (FilePath, FilePath, FilePath)

findObjectLinkableMaybe :: Module -> ModLocation -> IO (Maybe Linkable)

findObjectLinkable :: Module -> FilePath -> ClockTime -> IO Linkable

cannotFindModule :: DynFlags -> ModuleName -> FindResult -> SDoc

cannotFindInterface :: DynFlags -> ModuleName -> FindResult -> SDoc