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

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

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 #

ToJSON Doc Source # 
Instance details

ToJSON Stats Source # 
Instance details

ToJSON SourcePos Source #

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

Instance details

ToJSON ErrorResult Source # 
Instance details

FromJSON Doc Source # 
Instance details

FromJSON Stats Source # 
Instance details

FromJSON SourcePos Source # 
Instance details

FromJSON ErrorResult Source # 
Instance details

ToJSON (Output Doc) Source # 
Instance details

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

FromJSON (Output Doc) Source # 
Instance details

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