V - type of the abstract value that is trackedS - the store type used in the analysispublic interface TransferFunction<V extends AbstractValue<V>,S extends Store<S>> extends NodeVisitor<TransferResult<V,S>,TransferInput<V,S>>
A transfer function consists of the following components:
Node type that determines the behavior of the
org.checkerframework.dataflow analysis in that case. This method takes a Node and
an incoming store, and produces a RegularTransferResult.
Note: Initial store method(s) are different between forward and backward transfer
functions. Thus, this interface doesn't define any initial store method(s). ForwardTransferFunction and BackwardTransferFunction will create their own initial store
method(s).
Important: The individual transfer functions ( visit*) are allowed to use
(and modify) the stores contained in the argument passed; the ownership is transferred from the
caller to that function.
visitArrayAccess, visitArrayCreation, visitArrayType, visitAssertionError, visitAssignment, visitBitwiseAnd, visitBitwiseComplement, visitBitwiseOr, visitBitwiseXor, visitBooleanLiteral, visitCase, visitCharacterLiteral, visitClassDeclaration, visitClassName, visitConditionalAnd, visitConditionalNot, visitConditionalOr, visitDoubleLiteral, visitEqualTo, visitExplicitThisLiteral, visitFieldAccess, visitFloatingDivision, visitFloatingRemainder, visitFloatLiteral, visitGreaterThan, visitGreaterThanOrEqual, visitImplicitThisLiteral, visitInstanceOf, visitIntegerDivision, visitIntegerLiteral, visitIntegerRemainder, visitLambdaResultExpression, visitLeftShift, visitLessThan, visitLessThanOrEqual, visitLocalVariable, visitLongLiteral, visitMarker, visitMemberReference, visitMethodAccess, visitMethodInvocation, visitNarrowingConversion, visitNotEqual, visitNullChk, visitNullLiteral, visitNumericalAddition, visitNumericalMinus, visitNumericalMultiplication, visitNumericalPlus, visitNumericalSubtraction, visitObjectCreation, visitPackageName, visitParameterizedType, visitPrimitiveType, visitReturn, visitShortLiteral, visitSignedRightShift, visitStringConcatenate, visitStringConcatenateAssignment, visitStringConversion, visitStringLiteral, visitSuper, visitSynchronized, visitTernaryExpression, visitThrow, visitTypeCast, visitUnsignedRightShift, visitVariableDeclaration, visitWideningConversion