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
All Methods Instance Methods Abstract Methods Modifier and Type Method Description S
initialExceptionalExitStore(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.S
initialNormalExitStore(UnderlyingAST underlyingAST, java.util.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 Detail
-
initialNormalExitStore
@SideEffectFree S initialNormalExitStore(UnderlyingAST underlyingAST, java.util.List<ReturnNode> returnNodes)
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
@SideEffectFree S initialExceptionalExitStore(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.- Parameters:
underlyingAST
- the underlying AST of the given control flow graph- Returns:
- the initial store that should be used at the exceptional exit block
-
-