public class LockTransfer extends CFAbstractTransfer<CFValue,LockStore,LockTransfer>
analysis, sequentialSemantics
Constructor and Description |
---|
LockTransfer(LockAnalysis analysis,
LockChecker checker)
Create a transfer function for the Lock Checker.
|
Modifier and Type | Method and Description |
---|---|
LockStore |
initialStore(UnderlyingAST underlyingAST,
List<LocalVariableNode> parameters)
The initial store maps method formal parameters to their currently most refined type.
|
protected void |
makeLockHeld(LockStore store,
Node node)
Sets a given
Node to @LockHeld in the given store . |
protected void |
makeLockHeld(TransferResult<CFValue,LockStore> result,
Node node)
|
protected void |
makeLockPossiblyHeld(LockStore store,
Node node)
Sets a given
Node to @LockPossiblyHeld in the given store . |
protected void |
makeLockPossiblyHeld(TransferResult<CFValue,LockStore> result,
Node node)
|
TransferResult<CFValue,LockStore> |
visitSynchronized(SynchronizedNode n,
TransferInput<CFValue,LockStore> p) |
addInformationFromPreconditions, createTransferResult, finishValue, finishValue, getNarrowedValue, getValueFromFactory, getValueWithSameAnnotations, getWidenedValue, isNotFullyInitializedReceiver, moreSpecificValue, processCommonAssignment, processConditionalPostconditions, processPostconditions, recreateTransferResult, setFixedInitialStore, splitAssignments, strengthenAnnotationOfEqualTo, usesSequentialSemantics, visitArrayAccess, visitAssignment, visitCase, visitClassName, visitConditionalNot, visitEqualTo, visitFieldAccess, visitInstanceOf, visitLambdaResultExpression, visitLocalVariable, visitMethodInvocation, visitNarrowingConversion, visitNode, visitNotEqual, visitObjectCreation, visitReturn, visitStringConcatenateAssignment, visitStringConversion, visitTernaryExpression, visitThis, visitVariableDeclaration, visitWideningConversion
visitArrayCreation, visitArrayType, visitAssertionError, visitBitwiseAnd, visitBitwiseComplement, visitBitwiseOr, visitBitwiseXor, visitBooleanLiteral, visitCharacterLiteral, visitClassDeclaration, visitConditionalAnd, visitConditionalOr, visitDoubleLiteral, visitExplicitThis, visitFloatingDivision, visitFloatingRemainder, visitFloatLiteral, visitGreaterThan, visitGreaterThanOrEqual, visitImplicitThis, 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, visitExplicitThis, visitFloatingDivision, visitFloatingRemainder, visitFloatLiteral, visitGreaterThan, visitGreaterThanOrEqual, visitImplicitThis, 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)
analysis
- the analysis this transfer function belongs tochecker
- the type-checker this transfer function belongs toprotected void makeLockHeld(LockStore store, Node node)
Node
to @LockHeld in the given store
.protected void makeLockPossiblyHeld(LockStore store, Node node)
Node
to @LockPossiblyHeld in the given store
.protected void makeLockHeld(TransferResult<CFValue,LockStore> result, Node node)
protected void makeLockPossiblyHeld(TransferResult<CFValue,LockStore> result, Node node)
public LockStore initialStore(UnderlyingAST underlyingAST, List<LocalVariableNode> parameters)
CFAbstractTransfer
initialStore
in interface ForwardTransferFunction<CFValue,LockStore>
initialStore
in class CFAbstractTransfer<CFValue,LockStore,LockTransfer>
underlyingAST
- an abstract syntax treeparameters
- a list of local variable nodespublic TransferResult<CFValue,LockStore> visitSynchronized(SynchronizedNode n, TransferInput<CFValue,LockStore> p)
visitSynchronized
in interface NodeVisitor<TransferResult<CFValue,LockStore>,TransferInput<CFValue,LockStore>>
visitSynchronized
in class AbstractNodeVisitor<TransferResult<CFValue,LockStore>,TransferInput<CFValue,LockStore>>