liquidhaskell-boot-0.9.2.5.0: Liquid Types for Haskell
Safe HaskellSafe-Inferred
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.

data Def Source #

Variable definitions

Constructors

D 

Fields

  • start :: Int

    line at which binder definition starts

  • end :: Int

    line at which binder definition ends

  • binder :: Var

    name of binder

Instances

Instances details
Show Def Source # 
Instance details

Defined in Language.Haskell.Liquid.UX.DiffCheck

Methods

showsPrec :: Int -> Def -> ShowS #

show :: Def -> String #

showList :: [Def] -> ShowS #

Eq Def Source # 
Instance details

Defined in Language.Haskell.Liquid.UX.DiffCheck

Methods

(==) :: Def -> Def -> Bool #

(/=) :: Def -> Def -> Bool #

Ord Def Source # 
Instance details

Defined in Language.Haskell.Liquid.UX.DiffCheck

Methods

compare :: Def -> Def -> Ordering #

(<) :: Def -> Def -> Bool #

(<=) :: Def -> Def -> Bool #

(>) :: Def -> Def -> Bool #

(>=) :: Def -> Def -> Bool #

max :: Def -> Def -> Def #

min :: Def -> Def -> Def #

PPrint Def Source # 
Instance details

Defined in Language.Haskell.Liquid.UX.DiffCheck

Methods

pprintTidy :: Tidy -> Def -> Doc #

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

Orphan instances

FromJSON ErrorResult Source # 
Instance details

FromJSON SourcePos Source # 
Instance details

FromJSON Doc Source # 
Instance details

ToJSON SourcePos Source #

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

Instance details

ToJSON Doc Source # 
Instance details

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

FromJSON (Output Doc) Source # 
Instance details

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

ToJSON (Output Doc) Source # 
Instance details