liquidhaskell-0.8.10.2: Liquid Types for Haskell
Safe HaskellNone
LanguageHaskell98

Language.Haskell.Liquid.UX.DiffCheck

Description

This module contains the code for Incremental checking, which finds the part of a target file (the subset of the [CoreBind] that have been modified since it was last checked, as determined by a diff against a saved version of the file.

Synopsis

Changed binders + Unchanged Errors

data DiffCheck Source #

Data Types ----------------------------------------------------------------

Main type of value returned for diff-check.

Constructors

DC 

Instances

Instances details
PPrint DiffCheck Source # 
Instance details

Defined in Language.Haskell.Liquid.UX.DiffCheck

Methods

pprintTidy :: Tidy -> DiffCheck -> Doc #

pprintPrec :: Int -> Tidy -> DiffCheck -> Doc #

Use previously saved info to generate DiffCheck target

slice :: FilePath -> [CoreBind] -> TargetSpec -> IO (Maybe DiffCheck) Source #

slice returns a subset of the [CoreBind] of the input target file which correspond to top-level binders whose code has changed and their transitive dependencies.

Use target binders to generate DiffCheck target

thin :: [CoreBind] -> TargetSpec -> [Var] -> DiffCheck Source #

thin cbs sp vs returns a subset of the cbs :: [CoreBind] which correspond to the definitions of vs and the functions transitively called therein for which there are *no* type signatures. Callees with type signatures are assumed to satisfy those signatures.

Save current information for next time

saveResult :: FilePath -> Output Doc -> IO () Source #

save creates an .saved version of the target file, which will be used to find what has changed the next time target is checked.

Names of top-level binders that are rechecked

checkedVars :: DiffCheck -> [Var] Source #

checkedNames returns the names of the top-level binders that will be checked

CoreBinds defining given set of Var

filterBinds :: [CoreBind] -> HashSet Var -> [CoreBind] Source #

coreDeps :: [CoreBind] -> Deps Source #

dependsOn :: Deps -> [Var] -> HashSet Var Source #

Given a call graph, and a list of vars, dependsOn checks all functions to see if they call any of the functions in the vars list. If any do, then they must also be rechecked.

Orphan instances

Functor Diff Source # 
Instance details

Methods

fmap :: (a -> b) -> Diff a -> Diff b #

(<$) :: a -> Diff b -> Diff a #

FromJSON Doc Source # 
Instance details

Methods

parseJSON :: Value -> Parser Doc

parseJSONList :: Value -> Parser [Doc]

FromJSON SourcePos Source # 
Instance details

Methods

parseJSON :: Value -> Parser SourcePos

parseJSONList :: Value -> Parser [SourcePos]

FromJSON Stats Source # 
Instance details

Methods

parseJSON :: Value -> Parser Stats

parseJSONList :: Value -> Parser [Stats]

FromJSON ErrorResult Source # 
Instance details

Methods

parseJSON :: Value -> Parser ErrorResult

parseJSONList :: Value -> Parser [ErrorResult]

ToJSON Doc Source # 
Instance details

Methods

toJSON :: Doc -> Value

toEncoding :: Doc -> Encoding

toJSONList :: [Doc] -> Value

toEncodingList :: [Doc] -> Encoding

ToJSON SourcePos Source #

Aeson instances -----------------------------------------------------------

Instance details

Methods

toJSON :: SourcePos -> Value

toEncoding :: SourcePos -> Encoding

toJSONList :: [SourcePos] -> Value

toEncodingList :: [SourcePos] -> Encoding

ToJSON Stats Source # 
Instance details

Methods

toJSON :: Stats -> Value

toEncoding :: Stats -> Encoding

toJSONList :: [Stats] -> Value

toEncodingList :: [Stats] -> Encoding

ToJSON ErrorResult Source # 
Instance details

Methods

toJSON :: ErrorResult -> Value

toEncoding :: ErrorResult -> Encoding

toJSONList :: [ErrorResult] -> Value

toEncodingList :: [ErrorResult] -> Encoding

FromJSON (Output Doc) Source # 
Instance details

Methods

parseJSON :: Value -> Parser (Output Doc)

parseJSONList :: Value -> Parser [Output Doc]

FromJSON a => FromJSON (AnnInfo a) Source # 
Instance details

Methods

parseJSON :: Value -> Parser (AnnInfo a)

parseJSONList :: Value -> Parser [AnnInfo a]

ToJSON (Output Doc) Source # 
Instance details

Methods

toJSON :: Output Doc -> Value

toEncoding :: Output Doc -> Encoding

toJSONList :: [Output Doc] -> Value

toEncodingList :: [Output Doc] -> Encoding

ToJSON a => ToJSON (AnnInfo a) Source # 
Instance details

Methods

toJSON :: AnnInfo a -> Value

toEncoding :: AnnInfo a -> Encoding

toJSONList :: [AnnInfo a] -> Value

toEncodingList :: [AnnInfo a] -> Encoding