Class LockAnalysis
- java.lang.Object
-
- org.checkerframework.dataflow.analysis.AbstractAnalysis<V,S,T>
-
- org.checkerframework.dataflow.analysis.ForwardAnalysisImpl<V,S,T>
-
- org.checkerframework.framework.flow.CFAbstractAnalysis<CFValue,LockStore,LockTransfer>
-
- org.checkerframework.checker.lock.LockAnalysis
-
- All Implemented Interfaces:
Analysis<CFValue,LockStore,LockTransfer>
,ForwardAnalysis<CFValue,LockStore,LockTransfer>
public class LockAnalysis extends CFAbstractAnalysis<CFValue,LockStore,LockTransfer>
The analysis class for the lock type system.This class extends
CFAbstractAnalysis
so thatLockStore
is used rather thanCFStore
.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.checkerframework.framework.flow.CFAbstractAnalysis
CFAbstractAnalysis.FieldInitialValue<V extends CFAbstractValue<V>>
-
Nested classes/interfaces inherited from class org.checkerframework.dataflow.analysis.AbstractAnalysis
AbstractAnalysis.Worklist
-
Nested classes/interfaces inherited from interface org.checkerframework.dataflow.analysis.Analysis
Analysis.BeforeOrAfter, Analysis.Direction
-
-
Field Summary
-
Fields inherited from class org.checkerframework.framework.flow.CFAbstractAnalysis
atypeFactory, checker, dependentTypesHelper, env, fieldValues, qualHierarchy, typeHierarchy, types
-
Fields inherited from class org.checkerframework.dataflow.analysis.ForwardAnalysisImpl
blockCount, elseStores, maxCountBeforeWidening, storesAtReturnStatements, thenStores
-
Fields inherited from class org.checkerframework.dataflow.analysis.AbstractAnalysis
cfg, currentInput, currentNode, currentTree, direction, finalLocalValues, inputs, isRunning, nodeValues, transferFunction, worklist
-
-
Constructor Summary
Constructors Constructor Description LockAnalysis(BaseTypeChecker checker, LockAnnotatedTypeFactory factory)
Creates a newLockAnalysis
.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description CFValue
createAbstractValue(AnnotationMirrorSet annotations, javax.lang.model.type.TypeMirror underlyingType)
Returns an abstract value containing the givenannotations
andunderlyingType
.LockStore
createCopiedStore(LockStore s)
Returns an identical copy of the stores
.LockStore
createEmptyStore(boolean sequentialSemantics)
Returns an empty store of the appropriate type.LockTransfer
createTransferFunction()
Returns the transfer function to be used by the analysis.-
Methods inherited from class org.checkerframework.framework.flow.CFAbstractAnalysis
createAbstractValue, createSingleAnnotationValue, defaultCreateAbstractValue, getEnv, getFieldInitialValues, getTypeFactory, getTypeHierarchy, getTypes, performAnalysis
-
Methods inherited from class org.checkerframework.dataflow.analysis.ForwardAnalysisImpl
addStoreBefore, callTransferFunction, getInput, getInputBefore, getReturnStatementStores, getStoreBefore, initFields, initInitialInputs, performAnalysis, performAnalysisBlock, propagateStoresTo, runAnalysisFor
-
Methods inherited from class org.checkerframework.dataflow.analysis.AbstractAnalysis
addToWorklist, getContainingClass, getContainingMethod, getCurrentTree, getDirection, getExceptionalExitStore, getNodesForTree, getNodeValues, getRegularExitStore, getResult, getTransferFunction, getValue, getValue, init, isIgnoredExceptionType, isRunning, readFromStore, setCurrentNode, setCurrentTree, updateNodeValues
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.checkerframework.dataflow.analysis.Analysis
getDirection, getExceptionalExitStore, getRegularExitStore, getResult, getTransferFunction, getValue, getValue, isRunning
-
-
-
-
Constructor Detail
-
LockAnalysis
public LockAnalysis(BaseTypeChecker checker, LockAnnotatedTypeFactory factory)
Creates a newLockAnalysis
.- Parameters:
checker
- the checkerfactory
- the factory
-
-
Method Detail
-
createTransferFunction
public LockTransfer createTransferFunction()
Description copied from class:CFAbstractAnalysis
Returns the transfer function to be used by the analysis.- Overrides:
createTransferFunction
in classCFAbstractAnalysis<CFValue,LockStore,LockTransfer>
- Returns:
- the transfer function to be used by the analysis
-
createEmptyStore
public LockStore createEmptyStore(boolean sequentialSemantics)
Description copied from class:CFAbstractAnalysis
Returns an empty store of the appropriate type.- Specified by:
createEmptyStore
in classCFAbstractAnalysis<CFValue,LockStore,LockTransfer>
- Returns:
- an empty store of the appropriate type
-
createCopiedStore
public LockStore createCopiedStore(LockStore s)
Description copied from class:CFAbstractAnalysis
Returns an identical copy of the stores
.- Specified by:
createCopiedStore
in classCFAbstractAnalysis<CFValue,LockStore,LockTransfer>
- Returns:
- an identical copy of the store
s
-
createAbstractValue
public CFValue createAbstractValue(AnnotationMirrorSet annotations, javax.lang.model.type.TypeMirror underlyingType)
Description copied from class:CFAbstractAnalysis
Returns an abstract value containing the givenannotations
andunderlyingType
. Returns null if the annotation set has missing annotations.- Specified by:
createAbstractValue
in classCFAbstractAnalysis<CFValue,LockStore,LockTransfer>
- Parameters:
annotations
- the annotations for the result annotated typeunderlyingType
- the unannotated type for the result annotated type- Returns:
- an abstract value containing the given
annotations
andunderlyingType
-
-