public class LockAnalysis extends CFAbstractAnalysis<CFValue,LockStore,LockTransfer>
This class extends CFAbstractAnalysis
so that LockStore
is used rather than
CFStore
.
CFAbstractAnalysis.FieldInitialValue<V extends CFAbstractValue<V>>
AbstractAnalysis.Worklist
Analysis.BeforeOrAfter, Analysis.Direction
atypeFactory, checker, dependentTypesHelper, env, fieldValues, qualifierHierarchy, typeHierarchy, types
blockCount, elseStores, maxCountBeforeWidening, storesAtReturnStatements, thenStores
cfg, currentInput, currentNode, currentTree, direction, finalLocalValues, inputs, isRunning, nodeValues, transferFunction, worklist
Constructor and Description |
---|
LockAnalysis(BaseTypeChecker checker,
LockAnnotatedTypeFactory factory)
Creates a new
LockAnalysis . |
Modifier and Type | Method and Description |
---|---|
CFValue |
createAbstractValue(Set<AnnotationMirror> annotations,
TypeMirror underlyingType)
Returns an abstract value containing the given
annotations and underlyingType . |
LockStore |
createCopiedStore(LockStore s)
Returns an identical copy of the store
s . |
LockStore |
createEmptyStore(boolean sequentialSemantics)
Returns an empty store of the appropriate type.
|
LockTransfer |
createTransferFunction()
Returns the transfer function to be used by the analysis.
|
createAbstractValue, createSingleAnnotationValue, defaultCreateAbstractValue, getEnv, getFieldInitialValues, getTypeFactory, getTypeHierarchy, getTypes, performAnalysis
addStoreBefore, callTransferFunction, getInput, getInputBefore, getReturnStatementStores, getStoreBefore, initFields, initInitialInputs, performAnalysis, performAnalysisBlock, propagateStoresTo, runAnalysisFor
addToWorklist, getContainingClass, getContainingMethod, getCurrentTree, getDirection, getExceptionalExitStore, getNodesForTree, getNodeValues, getRegularExitStore, getResult, getTransferFunction, getValue, getValue, init, isRunning, readFromStore, setCurrentNode, setCurrentTree, updateNodeValues
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getDirection, getExceptionalExitStore, getRegularExitStore, getResult, getTransferFunction, getValue, getValue, isRunning
public LockAnalysis(BaseTypeChecker checker, LockAnnotatedTypeFactory factory)
LockAnalysis
.checker
- the checkerfactory
- the factorypublic LockTransfer createTransferFunction()
CFAbstractAnalysis
createTransferFunction
in class CFAbstractAnalysis<CFValue,LockStore,LockTransfer>
public LockStore createEmptyStore(boolean sequentialSemantics)
CFAbstractAnalysis
createEmptyStore
in class CFAbstractAnalysis<CFValue,LockStore,LockTransfer>
public LockStore createCopiedStore(LockStore s)
CFAbstractAnalysis
s
.createCopiedStore
in class CFAbstractAnalysis<CFValue,LockStore,LockTransfer>
s
public CFValue createAbstractValue(Set<AnnotationMirror> annotations, TypeMirror underlyingType)
CFAbstractAnalysis
annotations
and underlyingType
.
Returns null if the annotation set has missing annotations.createAbstractValue
in class CFAbstractAnalysis<CFValue,LockStore,LockTransfer>
annotations
and underlyingType