Class LiveVarTransfer
java.lang.Object
org.checkerframework.dataflow.cfg.node.AbstractNodeVisitor<TransferResult<LiveVarValue,LiveVarStore>,TransferInput<LiveVarValue,LiveVarStore>>
org.checkerframework.dataflow.livevariable.LiveVarTransfer
- All Implemented Interfaces:
BackwardTransferFunction<LiveVarValue,
,LiveVarStore> TransferFunction<LiveVarValue,
,LiveVarStore> NodeVisitor<TransferResult<LiveVarValue,
LiveVarStore>, TransferInput<LiveVarValue, LiveVarStore>>
public class LiveVarTransfer
extends AbstractNodeVisitor<TransferResult<LiveVarValue,LiveVarStore>,TransferInput<LiveVarValue,LiveVarStore>>
implements BackwardTransferFunction<LiveVarValue,LiveVarStore>
A live variable transfer function.
-
Constructor Summary
-
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.visitStringConcatenateAssignment
(StringConcatenateAssignmentNode n, TransferInput<LiveVarValue, LiveVarStore> p) Methods inherited from class org.checkerframework.dataflow.cfg.node.AbstractNodeVisitor
visitArrayAccess, visitArrayCreation, visitArrayType, visitAssertionError, visitBitwiseAnd, visitBitwiseComplement, visitBitwiseOr, visitBitwiseXor, visitBooleanLiteral, visitCase, visitCharacterLiteral, visitClassDeclaration, visitClassName, visitConditionalAnd, visitConditionalNot, visitConditionalOr, visitDoubleLiteral, visitEqualTo, visitExplicitThis, 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, visitWideningConversion
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
visitArrayAccess, visitArrayCreation, visitArrayType, visitAssertionError, visitBitwiseAnd, visitBitwiseComplement, visitBitwiseOr, visitBitwiseXor, visitBooleanLiteral, visitCase, visitCharacterLiteral, visitClassDeclaration, visitClassName, visitConditionalAnd, visitConditionalNot, visitConditionalOr, visitDoubleLiteral, visitEqualTo, visitExplicitThis, 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()
-
-
Method Details
-
initialNormalExitStore
@SideEffectFree public LiveVarStore initialNormalExitStore(UnderlyingAST underlyingAST, List<ReturnNode> returnNodes) Description copied from interface:BackwardTransferFunction
Returns the initial store that should be used at the normal exit block.- Specified by:
initialNormalExitStore
in interfaceBackwardTransferFunction<LiveVarValue,
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:BackwardTransferFunction
Returns the initial store that should be used at the exceptional exit block or given the underlying AST of a control flow graph.- Specified by:
initialExceptionalExitStore
in interfaceBackwardTransferFunction<LiveVarValue,
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<LiveVarValue,LiveVarStore> visitNode(Node n, TransferInput<LiveVarValue, LiveVarStore> p) - Specified by:
visitNode
in classAbstractNodeVisitor<TransferResult<LiveVarValue,
LiveVarStore>, TransferInput<LiveVarValue, LiveVarStore>>
-
visitAssignment
public RegularTransferResult<LiveVarValue,LiveVarStore> visitAssignment(AssignmentNode n, TransferInput<LiveVarValue, LiveVarStore> p) - Specified by:
visitAssignment
in interfaceNodeVisitor<TransferResult<LiveVarValue,
LiveVarStore>, TransferInput<LiveVarValue, LiveVarStore>> - Overrides:
visitAssignment
in classAbstractNodeVisitor<TransferResult<LiveVarValue,
LiveVarStore>, TransferInput<LiveVarValue, LiveVarStore>>
-
visitStringConcatenateAssignment
public RegularTransferResult<LiveVarValue,LiveVarStore> visitStringConcatenateAssignment(StringConcatenateAssignmentNode n, TransferInput<LiveVarValue, LiveVarStore> p) - Specified by:
visitStringConcatenateAssignment
in interfaceNodeVisitor<TransferResult<LiveVarValue,
LiveVarStore>, TransferInput<LiveVarValue, LiveVarStore>> - Overrides:
visitStringConcatenateAssignment
in classAbstractNodeVisitor<TransferResult<LiveVarValue,
LiveVarStore>, TransferInput<LiveVarValue, LiveVarStore>>
-
visitMethodInvocation
public RegularTransferResult<LiveVarValue,LiveVarStore> visitMethodInvocation(MethodInvocationNode n, TransferInput<LiveVarValue, LiveVarStore> p) - Specified by:
visitMethodInvocation
in interfaceNodeVisitor<TransferResult<LiveVarValue,
LiveVarStore>, TransferInput<LiveVarValue, LiveVarStore>> - Overrides:
visitMethodInvocation
in classAbstractNodeVisitor<TransferResult<LiveVarValue,
LiveVarStore>, TransferInput<LiveVarValue, LiveVarStore>>
-
visitObjectCreation
public RegularTransferResult<LiveVarValue,LiveVarStore> visitObjectCreation(ObjectCreationNode n, TransferInput<LiveVarValue, LiveVarStore> p) - Specified by:
visitObjectCreation
in interfaceNodeVisitor<TransferResult<LiveVarValue,
LiveVarStore>, TransferInput<LiveVarValue, LiveVarStore>> - Overrides:
visitObjectCreation
in classAbstractNodeVisitor<TransferResult<LiveVarValue,
LiveVarStore>, TransferInput<LiveVarValue, LiveVarStore>>
-
visitReturn
public RegularTransferResult<LiveVarValue,LiveVarStore> visitReturn(ReturnNode n, TransferInput<LiveVarValue, LiveVarStore> p) - Specified by:
visitReturn
in interfaceNodeVisitor<TransferResult<LiveVarValue,
LiveVarStore>, TransferInput<LiveVarValue, LiveVarStore>> - Overrides:
visitReturn
in classAbstractNodeVisitor<TransferResult<LiveVarValue,
LiveVarStore>, TransferInput<LiveVarValue, LiveVarStore>>
-