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, getWidenedValue, insertIntoStores, isNotFullyInitializedReceiver, moreSpecificValue, processCommonAssignment, processConditionalPostconditions, processPostconditions, recreateTransferResult, setFixedInitialStore, splitAssignments, strengthenAnnotationOfEqualTo, usesSequentialSemantics, visitArrayAccess, visitAssignment, visitCase, visitClassName, visitConditionalNot, visitEqualTo, visitExpressionStatement, visitFieldAccess, visitInstanceOf, visitLambdaResultExpression, visitLocalVariable, visitMethodInvocation, visitNarrowingConversion, visitNode, visitNotEqual, visitObjectCreation, visitReturn, visitStringConcatenateAssignment, visitStringConversion, visitSwitchExpressionNode, visitTernaryExpression, visitThis, visitVariableDeclaration, visitWideningConversionvisitArrayCreation, 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, visitValueLiteralclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitvisitArrayCreation, 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, visitUnsignedRightShiftpublic 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.store - the store to updatenode - the node that should be @LockHeldprotected void makeLockPossiblyHeld(LockStore store, Node node)
Node to @LockPossiblyHeld in the given store.store - the store to updatenode - the node that should be @LockPossiblyHeldprotected 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)
CFAbstractTransferinitialStore in interface ForwardTransferFunction<CFValue,LockStore>initialStore in class CFAbstractTransfer<CFValue,LockStore,LockTransfer>underlyingAST - an abstract syntax treeparameters - a list of local variable nodes representing formal parameters (if any)public 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>>