Interface BackwardTransferFunction<V extends AbstractValue<V>,S extends Store<S>>
- Type Parameters:
V
- the abstract value type to be tracked by the analysisS
- the store type used in the analysis
- All Superinterfaces:
NodeVisitor<TransferResult<V,
,S>, TransferInput<V, S>> TransferFunction<V,
S>
- All Known Implementing Classes:
BusyExprTransfer
,LiveVarTransfer
public interface BackwardTransferFunction<V extends AbstractValue<V>,S extends Store<S>>
extends TransferFunction<V,S>
Interface of a backward transfer function for the abstract interpretation used for the backward
flow analysis.
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.
-
Method Summary
Modifier and TypeMethodDescriptioninitialExceptionalExitStore
(UnderlyingAST underlyingAST) Returns the initial store that should be used at the exceptional exit block or given the underlying AST of a control flow graph.initialNormalExitStore
(UnderlyingAST underlyingAST, List<ReturnNode> returnNodes) Returns the initial store that should be used at the normal exit block.Methods inherited from interface org.checkerframework.dataflow.cfg.node.NodeVisitor
visitArrayAccess, visitArrayCreation, visitArrayType, visitAssertionError, visitAssignment, visitBitwiseAnd, visitBitwiseComplement, visitBitwiseOr, visitBitwiseXor, visitBooleanLiteral, visitCase, visitCharacterLiteral, visitClassDeclaration, visitClassName, visitConditionalAnd, visitConditionalNot, visitConditionalOr, visitDeconstructorPattern, visitDoubleLiteral, visitEqualTo, visitExplicitThis, visitExpressionStatement, visitFieldAccess, visitFloatingDivision, visitFloatingRemainder, visitFloatLiteral, visitGreaterThan, visitGreaterThanOrEqual, visitImplicitThis, 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, visitStringConversion, visitStringLiteral, visitSuper, visitSwitchExpressionNode, visitSynchronized, visitTernaryExpression, visitThrow, visitTypeCast, visitUnsignedRightShift, visitVariableDeclaration, visitWideningConversion
-
Method Details
-
initialNormalExitStore
Returns the initial store that should be used at the normal exit block.- Parameters:
underlyingAST
- the underlying AST of the given control flow graphreturnNodes
- the return nodes of the given control flow graph (an empty list if the underlying AST is not a method)- Returns:
- the initial store that should be used at the normal exit block
-
initialExceptionalExitStore
Returns the initial store that should be used at the exceptional exit block or given the underlying AST of a control flow graph.- Parameters:
underlyingAST
- the underlying AST of the given control flow graph- Returns:
- the initial store that should be used at the exceptional exit block
-