liquidhaskell-0.8.10.2: Liquid Types for Haskell
Safe HaskellNone
LanguageHaskell98

Language.Haskell.Liquid.GHC.Interface

Synopsis

Determine the build-order for target files

realTargets :: Maybe HscEnv -> Config -> [FilePath] -> IO [FilePath] Source #

realTargets mE cfg targets uses configureGhcTargets to return a list of files

i1, i2, ...
++ [f1, f2, ...]
  1. Where each file only (transitively imports) PRECEDIING ones;
  2. `f1..` are a permutation of the original targets;
  3. `i1..` either don't have "fresh" .bspec files.

Extract all information needed for verification

getTargetInfos :: Maybe HscEnv -> Config -> [FilePath] -> IO ([TargetInfo], HscEnv) Source #

GHC Interface Pipeline ----------------------------------------------------

runLiquidGhc :: Maybe HscEnv -> Config -> Ghc a -> IO a Source #

GHC Configuration & Setup -------------------------------------------------

Printer

predicates

Internal exports (provisional)

extractSpecComments :: ApiAnns -> [(SourcePos, String)] Source #

Extract Specifications from GHC -------------------------------------------

extractSpecQuotes' :: (a -> Module) -> (a -> [Annotation]) -> a -> [BPspec] Source #

classCons :: Maybe [ClsInst] -> [Id] Source #

Extract Ids ---------------------------------------------------------------

makeGhcSrc :: Config -> FilePath -> TypecheckedModule -> ModSummary -> Ghc GhcSrc Source #

makeGhcSrc builds all the source-related information needed for consgen

makeFamInstEnv :: [FamInst] -> ([TyCon], [(Symbol, DataCon)]) Source #

Family instance information

findAndParseSpecFiles :: GhcMonadLike m => Config -> HashSet FilePath -> ModSummary -> [Module] -> m [(ModName, BareSpec)] Source #

Finding & Parsing Files ---------------------------------------------------

Handle Spec Files ---------------------------------------------------------

lookupTyThings :: GhcMonadLike m => HscEnv -> ModSummary -> TcGblEnv -> m [(Name, Maybe TyThing)] Source #

lookupTyThings grabs all the Names and associated TyThing known to GHC for this module; we will use this to create our name-resolution environment (see Resolve)

availableTyCons :: GhcMonadLike m => HscEnv -> ModSummary -> TcGblEnv -> [AvailInfo] -> m [TyCon] Source #

Returns all the available (i.e. exported) TyCons (type constructors) for the input Module.

availableVars :: GhcMonadLike m => HscEnv -> ModSummary -> TcGblEnv -> [AvailInfo] -> m [Var] Source #

Returns all the available (i.e. exported) Vars for the input Module.

Orphan instances

Show TargetInfo Source # 
Instance details

PPrint TargetVars Source # 
Instance details

PPrint TargetSpec Source #

Pretty Printing -----------------------------------------------------------

Instance details

PPrint TargetInfo Source # 
Instance details

Result SourceError Source # 
Instance details