HieBin

ghc-8.10.2: The GHC API

Safe Haskell | None
Language | Haskell2010

HieBin

Synopsis

- readHieFile :: NameCache -> FilePath -> IO (HieFileResult, NameCache)
- readHieFileWithVersion :: (HieHeader -> Bool) -> NameCache -> FilePath -> IO (Either HieHeader (HieFileResult, NameCache))
- type HieHeader = (Integer, ByteString)
- writeHieFile :: FilePath -> HieFile -> IO ()
- data HieName
  - = ExternalName !Module !OccName !SrcSpan
  - | LocalName !OccName !SrcSpan
  - | KnownKeyName !Unique
- toHieName :: Name -> HieName
- data HieFileResult = HieFileResult {
  - hie_file_result_version :: Integer
  - hie_file_result_ghc_version :: ByteString
  - hie_file_result :: HieFile
  }
- hieMagic :: [Word8]
- hieNameOcc :: HieName -> OccName

# Documentation

readHieFile :: NameCache -> FilePath -> IO (HieFileResult, NameCache) Source #

Read a `HieFile` from a `FilePath`. Can use an existing `NameCache`.

readHieFileWithVersion :: (HieHeader -> Bool) -> NameCache -> FilePath -> IO (Either HieHeader (HieFileResult, NameCache)) Source #

Read a `HieFile` from a `FilePath`. Can use an existing `NameCache`. Allows you to specify which versions of hieFile to attempt to read. `Left` case returns the failing header versions.

type HieHeader = (Integer, ByteString) Source #

writeHieFile :: FilePath -> HieFile -> IO () Source #

Write a `HieFile` to the given `FilePath`, with a proper header and symbol tables for `Name`s and `FastString`s

data HieName Source #

`Name`'s get converted into `HieName`'s before being written into `.hie` files. See `toHieName` and `fromHieName` for logic on how to convert between these two types.

Constructors

ExternalName !Module !OccName !SrcSpan |
LocalName !OccName !SrcSpan |
KnownKeyName !Unique |

#### Instances

Instances details

Eq HieName # |
Instance details Defined in HieBin Methods (==) :: HieName -> HieName -> Bool # (/=) :: HieName -> HieName -> Bool #
Ord HieName # |
Instance details Defined in HieBin Methods compare :: HieName -> HieName -> Ordering # (<) :: HieName -> HieName -> Bool # (<=) :: HieName -> HieName -> Bool # (>) :: HieName -> HieName -> Bool # (>=) :: HieName -> HieName -> Bool # max :: HieName -> HieName -> HieName # min :: HieName -> HieName -> HieName #
Outputable HieName # |
Instance details Defined in HieBin Methods ppr :: HieName -> SDoc Source # pprPrec :: Rational -> HieName -> SDoc Source #

toHieName :: Name -> HieName Source #

data HieFileResult Source #

Constructors

HieFileResult |
Fields hie_file_result_version :: Integer hie_file_result_ghc_version :: ByteString hie_file_result :: HieFile

hieMagic :: [Word8] Source #

The header for HIE files - Capital ASCII letters HIE.

hieNameOcc :: HieName -> OccName Source #