Class LockTransfer
java.lang.Object
org.checkerframework.dataflow.cfg.node.AbstractNodeVisitor<TransferResult<CFValue,LockStore>,TransferInput<CFValue,LockStore>>
org.checkerframework.framework.flow.CFAbstractTransfer<CFValue,LockStore,LockTransfer>
org.checkerframework.checker.lock.LockTransfer
- All Implemented Interfaces:
ForwardTransferFunction<CFValue,,LockStore> TransferFunction<CFValue,,LockStore> NodeVisitor<TransferResult<CFValue,LockStore>, TransferInput<CFValue, LockStore>>
LockTransfer handles constructors, initializers, synchronized methods, and synchronized blocks.
-
Field Summary
Fields inherited from class org.checkerframework.framework.flow.CFAbstractTransfer
analysis, sequentialSemantics -
Constructor Summary
ConstructorsConstructorDescriptionLockTransfer(LockAnalysis analysis, LockChecker checker) Create a transfer function for the Lock Checker. -
Method Summary
Modifier and TypeMethodDescriptioninitialStore(UnderlyingAST underlyingAST, List<LocalVariableNode> parameters) The initial store maps method formal parameters to their currently most refined type.protected voidmakeLockHeld(LockStore store, Node node) Sets a givenNodeto @LockHeld in the givenstore.protected voidmakeLockHeld(TransferResult<CFValue, LockStore> result, Node node) protected voidmakeLockPossiblyHeld(LockStore store, Node node) Sets a givenNodeto @LockPossiblyHeld in the givenstore.protected voidmakeLockPossiblyHeld(TransferResult<CFValue, LockStore> result, Node node) Methods inherited from class org.checkerframework.framework.flow.CFAbstractTransfer
addInformationFromPreconditions, createTransferResult, finishValue, finishValue, getNarrowedValue, getValueFromFactory, getWidenedValue, insertIntoStores, isNotFullyInitializedReceiver, moreSpecificValue, processCommonAssignment, processConditionalPostconditions, processPostconditions, recreateTransferResult, setFixedInitialStore, splitAssignments, strengthenAnnotationOfEqualTo, usesSequentialSemantics, visitArrayAccess, visitAssignment, visitCase, visitClassName, visitConditionalNot, visitDeconstructorPattern, visitEqualTo, visitExpressionStatement, visitFieldAccess, visitInstanceOf, visitLambdaResultExpression, visitLocalVariable, visitMethodInvocation, visitNarrowingConversion, visitNode, visitNotEqual, visitObjectCreation, visitReturn, visitStringConversion, visitSwitchExpressionNode, visitTernaryExpression, visitThis, visitVariableDeclaration, visitWideningConversionMethods inherited from class org.checkerframework.dataflow.cfg.node.AbstractNodeVisitor
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, visitValueLiteralMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.checkerframework.dataflow.cfg.node.NodeVisitor
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
-
Constructor Details
-
LockTransfer
Create a transfer function for the Lock Checker.- Parameters:
analysis- the analysis this transfer function belongs tochecker- the type-checker this transfer function belongs to
-
-
Method Details
-
makeLockHeld
Sets a givenNodeto @LockHeld in the givenstore.- Parameters:
store- the store to updatenode- the node that should be @LockHeld
-
makeLockPossiblyHeld
Sets a givenNodeto @LockPossiblyHeld in the givenstore.- Parameters:
store- the store to updatenode- the node that should be @LockPossiblyHeld
-
makeLockHeld
-
makeLockPossiblyHeld
-
initialStore
Description copied from class:CFAbstractTransferThe initial store maps method formal parameters to their currently most refined type.- Specified by:
initialStorein interfaceForwardTransferFunction<CFValue,LockStore> - Overrides:
initialStorein classCFAbstractTransfer<CFValue,LockStore, LockTransfer> - Parameters:
underlyingAST- an abstract syntax treeparameters- a list of local variable nodes representing formal parameters (if any)- Returns:
- the initial store
-
visitSynchronized
public TransferResult<CFValue,LockStore> visitSynchronized(SynchronizedNode n, TransferInput<CFValue, LockStore> p) - Specified by:
visitSynchronizedin interfaceNodeVisitor<TransferResult<CFValue,LockStore>, TransferInput<CFValue, LockStore>> - Overrides:
visitSynchronizedin classAbstractNodeVisitor<TransferResult<CFValue,LockStore>, TransferInput<CFValue, LockStore>>
-