public class LockTransfer extends org.checkerframework.framework.flow.CFAbstractTransfer<org.checkerframework.framework.flow.CFValue,LockStore,LockTransfer>
Constructor and Description |
---|
LockTransfer(LockAnalysis analysis,
LockChecker checker) |
Modifier and Type | Method and Description |
---|---|
LockStore |
initialStore(org.checkerframework.dataflow.cfg.UnderlyingAST underlyingAST,
List<org.checkerframework.dataflow.cfg.node.LocalVariableNode> parameters) |
protected void |
makeLockHeld(LockStore store,
org.checkerframework.dataflow.cfg.node.Node node)
Sets a given
Node to @LockHeld in the given store . |
protected void |
makeLockHeld(org.checkerframework.dataflow.analysis.TransferResult<org.checkerframework.framework.flow.CFValue,LockStore> result,
org.checkerframework.dataflow.cfg.node.Node node)
Sets a given
Node node to LockHeld in the given TransferResult . |
protected void |
makeLockPossiblyHeld(LockStore store,
org.checkerframework.dataflow.cfg.node.Node node)
Sets a given
Node to @LockPossiblyHeld in the given store . |
protected void |
makeLockPossiblyHeld(org.checkerframework.dataflow.analysis.TransferResult<org.checkerframework.framework.flow.CFValue,LockStore> result,
org.checkerframework.dataflow.cfg.node.Node node)
Sets a given
Node node to LockPossiblyHeld in the given TransferResult . |
org.checkerframework.dataflow.analysis.TransferResult<org.checkerframework.framework.flow.CFValue,LockStore> |
visitSynchronized(org.checkerframework.dataflow.cfg.node.SynchronizedNode n,
org.checkerframework.dataflow.analysis.TransferInput<org.checkerframework.framework.flow.CFValue,LockStore> p) |
addInformationFromPreconditions, finishValue, finishValue, getValueFromFactory, getValueWithSameAnnotations, isNotFullyInitializedReceiver, moreSpecificValue, processCommonAssignment, processConditionalPostconditions, processPostconditions, setFixedInitialStore, splitAssignments, strengthenAnnotationOfEqualTo, usesSequentialSemantics, visitArrayAccess, visitAssignment, visitCase, visitClassName, visitConditionalNot, visitEqualTo, visitFieldAccess, visitLambdaResultExpression, visitLocalVariable, visitMethodInvocation, visitNarrowingConversion, visitNode, visitNotEqual, visitObjectCreation, visitReturn, visitStringConcatenateAssignment, visitStringConversion, visitTernaryExpression, visitThisLiteral, visitVariableDeclaration, visitWideningConversion
visitArrayCreation, visitArrayType, visitAssertionError, visitBitwiseAnd, visitBitwiseComplement, visitBitwiseOr, visitBitwiseXor, visitBooleanLiteral, visitCharacterLiteral, visitClassDeclaration, visitConditionalAnd, visitConditionalOr, visitDoubleLiteral, visitExplicitThisLiteral, visitFloatingDivision, visitFloatingRemainder, visitFloatLiteral, visitGreaterThan, visitGreaterThanOrEqual, visitImplicitThisLiteral, visitInstanceOf, visitIntegerDivision, visitIntegerLiteral, visitIntegerRemainder, visitLeftShift, visitLessThan, visitLessThanOrEqual, visitLongLiteral, visitMarker, visitMemberReference, visitMethodAccess, visitNullChk, visitNullLiteral, visitNumericalAddition, visitNumericalMinus, visitNumericalMultiplication, visitNumericalPlus, visitNumericalSubtraction, visitPackageName, visitParameterizedType, visitPrimitiveType, visitShortLiteral, visitSignedRightShift, visitStringConcatenate, visitStringLiteral, visitSuper, visitThrow, visitTypeCast, visitUnsignedRightShift, visitValueLiteral
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
visitArrayCreation, visitArrayType, visitAssertionError, visitBitwiseAnd, visitBitwiseComplement, visitBitwiseOr, visitBitwiseXor, visitBooleanLiteral, visitCharacterLiteral, visitClassDeclaration, visitConditionalAnd, visitConditionalOr, visitDoubleLiteral, visitExplicitThisLiteral, visitFloatingDivision, visitFloatingRemainder, visitFloatLiteral, visitGreaterThan, visitGreaterThanOrEqual, visitImplicitThisLiteral, visitInstanceOf, visitIntegerDivision, visitIntegerLiteral, visitIntegerRemainder, visitLeftShift, visitLessThan, visitLessThanOrEqual, visitLongLiteral, visitMarker, visitMemberReference, visitMethodAccess, visitNullChk, visitNullLiteral, visitNumericalAddition, visitNumericalMinus, visitNumericalMultiplication, visitNumericalPlus, visitNumericalSubtraction, visitPackageName, visitParameterizedType, visitPrimitiveType, visitShortLiteral, visitSignedRightShift, visitStringConcatenate, visitStringLiteral, visitSuper, visitThrow, visitTypeCast, visitUnsignedRightShift
public LockTransfer(LockAnalysis analysis, LockChecker checker)
protected void makeLockHeld(LockStore store, org.checkerframework.dataflow.cfg.node.Node node)
Node
to @LockHeld in the given store
.protected void makeLockPossiblyHeld(LockStore store, org.checkerframework.dataflow.cfg.node.Node node)
Node
to @LockPossiblyHeld in the given store
.protected void makeLockHeld(org.checkerframework.dataflow.analysis.TransferResult<org.checkerframework.framework.flow.CFValue,LockStore> result, org.checkerframework.dataflow.cfg.node.Node node)
Node
node
to LockHeld in the given TransferResult
.protected void makeLockPossiblyHeld(org.checkerframework.dataflow.analysis.TransferResult<org.checkerframework.framework.flow.CFValue,LockStore> result, org.checkerframework.dataflow.cfg.node.Node node)
Node
node
to LockPossiblyHeld in the given TransferResult
.public LockStore initialStore(org.checkerframework.dataflow.cfg.UnderlyingAST underlyingAST, List<org.checkerframework.dataflow.cfg.node.LocalVariableNode> parameters)
initialStore
in interface org.checkerframework.dataflow.analysis.TransferFunction<org.checkerframework.framework.flow.CFValue,LockStore>
initialStore
in class org.checkerframework.framework.flow.CFAbstractTransfer<org.checkerframework.framework.flow.CFValue,LockStore,LockTransfer>
public org.checkerframework.dataflow.analysis.TransferResult<org.checkerframework.framework.flow.CFValue,LockStore> visitSynchronized(org.checkerframework.dataflow.cfg.node.SynchronizedNode n, org.checkerframework.dataflow.analysis.TransferInput<org.checkerframework.framework.flow.CFValue,LockStore> p)
visitSynchronized
in interface org.checkerframework.dataflow.cfg.node.NodeVisitor<org.checkerframework.dataflow.analysis.TransferResult<org.checkerframework.framework.flow.CFValue,LockStore>,org.checkerframework.dataflow.analysis.TransferInput<org.checkerframework.framework.flow.CFValue,LockStore>>
visitSynchronized
in class org.checkerframework.dataflow.cfg.node.AbstractNodeVisitor<org.checkerframework.dataflow.analysis.TransferResult<org.checkerframework.framework.flow.CFValue,LockStore>,org.checkerframework.dataflow.analysis.TransferInput<org.checkerframework.framework.flow.CFValue,LockStore>>