Class KeyForTransfer
- java.lang.Object
-
- org.checkerframework.dataflow.cfg.node.AbstractNodeVisitor<TransferResult<V,S>,TransferInput<V,S>>
-
- org.checkerframework.framework.flow.CFAbstractTransfer<KeyForValue,KeyForStore,KeyForTransfer>
-
- org.checkerframework.checker.nullness.KeyForTransfer
-
- All Implemented Interfaces:
ForwardTransferFunction<KeyForValue,KeyForStore>
,TransferFunction<KeyForValue,KeyForStore>
,NodeVisitor<TransferResult<KeyForValue,KeyForStore>,TransferInput<KeyForValue,KeyForStore>>
public class KeyForTransfer extends CFAbstractTransfer<KeyForValue,KeyForStore,KeyForTransfer>
KeyForTransfer ensures that java.util.Map.put and containsKey cause the appropriate @KeyFor annotation to be added to the key.
-
-
Field Summary
Fields Modifier and Type Field Description protected javax.lang.model.element.ExecutableElement
keyForValueElement
The KeyFor.value element/field.-
Fields inherited from class org.checkerframework.framework.flow.CFAbstractTransfer
analysis, sequentialSemantics
-
-
Constructor Summary
Constructors Constructor Description KeyForTransfer(KeyForAnalysis analysis)
Creates a new KeyForTransfer.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description TransferResult<KeyForValue,KeyForStore>
visitMethodInvocation(MethodInvocationNode node, TransferInput<KeyForValue,KeyForStore> in)
-
Methods inherited from class org.checkerframework.framework.flow.CFAbstractTransfer
addInformationFromPreconditions, createTransferResult, finishValue, finishValue, getNarrowedValue, getValueFromFactory, getWidenedValue, initialStore, insertIntoStores, isNotFullyInitializedReceiver, moreSpecificValue, processCommonAssignment, processConditionalPostconditions, processPostconditions, recreateTransferResult, setFixedInitialStore, splitAssignments, strengthenAnnotationOfEqualTo, usesSequentialSemantics, visitArrayAccess, visitAssignment, visitCase, visitClassName, visitConditionalNot, visitDeconstructorPattern, visitEqualTo, visitExpressionStatement, visitFieldAccess, visitInstanceOf, visitLambdaResultExpression, visitLocalVariable, visitNarrowingConversion, visitNode, visitNotEqual, visitObjectCreation, visitReturn, visitStringConversion, visitSwitchExpressionNode, visitTernaryExpression, visitThis, visitVariableDeclaration, visitWideningConversion
-
Methods 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, visitSynchronized, visitThrow, visitTypeCast, visitUnsignedRightShift, visitValueLiteral
-
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.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, visitSynchronized, visitThrow, visitTypeCast, visitUnsignedRightShift
-
-
-
-
Constructor Detail
-
KeyForTransfer
public KeyForTransfer(KeyForAnalysis analysis)
Creates a new KeyForTransfer.- Parameters:
analysis
- the analysis
-
-
Method Detail
-
visitMethodInvocation
public TransferResult<KeyForValue,KeyForStore> visitMethodInvocation(MethodInvocationNode node, TransferInput<KeyForValue,KeyForStore> in)
- Specified by:
visitMethodInvocation
in interfaceNodeVisitor<TransferResult<KeyForValue,KeyForStore>,TransferInput<KeyForValue,KeyForStore>>
- Overrides:
visitMethodInvocation
in classCFAbstractTransfer<KeyForValue,KeyForStore,KeyForTransfer>
-
-