Class LiveVarTransfer
java.lang.Object
org.checkerframework.dataflow.cfg.node.AbstractNodeVisitor<TransferResult<UnusedAbstractValue,LiveVarStore>,TransferInput<UnusedAbstractValue,LiveVarStore>>
org.checkerframework.dataflow.livevariable.LiveVarTransfer
- All Implemented Interfaces:
BackwardTransferFunction<UnusedAbstractValue,,LiveVarStore> TransferFunction<UnusedAbstractValue,,LiveVarStore> NodeVisitor<TransferResult<UnusedAbstractValue,LiveVarStore>, TransferInput<UnusedAbstractValue, LiveVarStore>>
public class LiveVarTransfer
extends AbstractNodeVisitor<TransferResult<UnusedAbstractValue,LiveVarStore>,TransferInput<UnusedAbstractValue,LiveVarStore>>
implements BackwardTransferFunction<UnusedAbstractValue,LiveVarStore>
A live variable transfer function.
-
Constructor Summary
Constructors -
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 class org.checkerframework.dataflow.cfg.node.AbstractNodeVisitor
visitAnyPattern, visitArrayAccess, visitArrayCreation, visitArrayType, visitAssertionError, 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, visitNarrowingConversion, visitNotEqual, visitNullChk, visitNullLiteral, visitNumericalAddition, visitNumericalMinus, visitNumericalMultiplication, visitNumericalPlus, visitNumericalSubtraction, visitPackageName, visitParameterizedType, visitPrimitiveType, visitShortLiteral, visitSignedRightShift, visitStringConcatenate, visitStringConversion, visitStringLiteral, visitSuper, visitSwitchExpressionNode, visitSynchronized, visitTernaryExpression, visitThis, visitThrow, visitTypeCast, visitUnsignedRightShift, visitValueLiteral, visitVariableDeclaration, visitWideningConversionMethods 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
visitAnyPattern, visitArrayAccess, visitArrayCreation, visitArrayType, visitAssertionError, 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, visitNarrowingConversion, visitNotEqual, visitNullChk, visitNullLiteral, visitNumericalAddition, visitNumericalMinus, visitNumericalMultiplication, visitNumericalPlus, visitNumericalSubtraction, visitPackageName, visitParameterizedType, visitPrimitiveType, visitShortLiteral, visitSignedRightShift, visitStringConcatenate, visitStringConversion, visitStringLiteral, visitSuper, visitSwitchExpressionNode, visitSynchronized, visitTernaryExpression, visitThrow, visitTypeCast, visitUnsignedRightShift, visitVariableDeclaration, visitWideningConversion
-
Constructor Details
-
LiveVarTransfer
public LiveVarTransfer()Creates a new LiveVarTransfer.
-
-
Method Details
-
initialNormalExitStore
@SideEffectFree public LiveVarStore initialNormalExitStore(UnderlyingAST underlyingAST, List<ReturnNode> returnNodes) Description copied from interface:BackwardTransferFunctionReturns the initial store that should be used at the normal exit block.- Specified by:
initialNormalExitStorein interfaceBackwardTransferFunction<UnusedAbstractValue,LiveVarStore> - 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
Description copied from interface:BackwardTransferFunctionReturns the initial store that should be used at the exceptional exit block or given the underlying AST of a control flow graph.- Specified by:
initialExceptionalExitStorein interfaceBackwardTransferFunction<UnusedAbstractValue,LiveVarStore> - Parameters:
underlyingAST- the underlying AST of the given control flow graph- Returns:
- the initial store that should be used at the exceptional exit block
-
visitNode
public RegularTransferResult<UnusedAbstractValue,LiveVarStore> visitNode(Node n, TransferInput<UnusedAbstractValue, LiveVarStore> p) - Specified by:
visitNodein classAbstractNodeVisitor<TransferResult<UnusedAbstractValue,LiveVarStore>, TransferInput<UnusedAbstractValue, LiveVarStore>>
-
visitAssignment
public RegularTransferResult<UnusedAbstractValue,LiveVarStore> visitAssignment(AssignmentNode n, TransferInput<UnusedAbstractValue, LiveVarStore> p) - Specified by:
visitAssignmentin interfaceNodeVisitor<TransferResult<UnusedAbstractValue,LiveVarStore>, TransferInput<UnusedAbstractValue, LiveVarStore>> - Overrides:
visitAssignmentin classAbstractNodeVisitor<TransferResult<UnusedAbstractValue,LiveVarStore>, TransferInput<UnusedAbstractValue, LiveVarStore>>
-
visitMethodInvocation
public RegularTransferResult<UnusedAbstractValue,LiveVarStore> visitMethodInvocation(MethodInvocationNode n, TransferInput<UnusedAbstractValue, LiveVarStore> p) - Specified by:
visitMethodInvocationin interfaceNodeVisitor<TransferResult<UnusedAbstractValue,LiveVarStore>, TransferInput<UnusedAbstractValue, LiveVarStore>> - Overrides:
visitMethodInvocationin classAbstractNodeVisitor<TransferResult<UnusedAbstractValue,LiveVarStore>, TransferInput<UnusedAbstractValue, LiveVarStore>>
-
visitObjectCreation
public RegularTransferResult<UnusedAbstractValue,LiveVarStore> visitObjectCreation(ObjectCreationNode n, TransferInput<UnusedAbstractValue, LiveVarStore> p) - Specified by:
visitObjectCreationin interfaceNodeVisitor<TransferResult<UnusedAbstractValue,LiveVarStore>, TransferInput<UnusedAbstractValue, LiveVarStore>> - Overrides:
visitObjectCreationin classAbstractNodeVisitor<TransferResult<UnusedAbstractValue,LiveVarStore>, TransferInput<UnusedAbstractValue, LiveVarStore>>
-
visitReturn
public RegularTransferResult<UnusedAbstractValue,LiveVarStore> visitReturn(ReturnNode n, TransferInput<UnusedAbstractValue, LiveVarStore> p) - Specified by:
visitReturnin interfaceNodeVisitor<TransferResult<UnusedAbstractValue,LiveVarStore>, TransferInput<UnusedAbstractValue, LiveVarStore>> - Overrides:
visitReturnin classAbstractNodeVisitor<TransferResult<UnusedAbstractValue,LiveVarStore>, TransferInput<UnusedAbstractValue, LiveVarStore>>
-