Class ReachingDefinitionTransfer
- java.lang.Object
-
- org.checkerframework.dataflow.cfg.node.AbstractNodeVisitor<TransferResult<UnusedAbstractValue,ReachingDefinitionStore>,TransferInput<UnusedAbstractValue,ReachingDefinitionStore>>
-
- org.checkerframework.dataflow.reachingdef.ReachingDefinitionTransfer
-
- All Implemented Interfaces:
ForwardTransferFunction<UnusedAbstractValue,ReachingDefinitionStore>
,TransferFunction<UnusedAbstractValue,ReachingDefinitionStore>
,NodeVisitor<TransferResult<UnusedAbstractValue,ReachingDefinitionStore>,TransferInput<UnusedAbstractValue,ReachingDefinitionStore>>
public class ReachingDefinitionTransfer extends AbstractNodeVisitor<TransferResult<UnusedAbstractValue,ReachingDefinitionStore>,TransferInput<UnusedAbstractValue,ReachingDefinitionStore>> implements ForwardTransferFunction<UnusedAbstractValue,ReachingDefinitionStore>
The reaching definition transfer function. The transfer function processes the ReachingDefinitionNode in ReachingDefinitionStore, killing the node with same LHS and putting new generated node into the store. See dataflow manual for more details.
-
-
Constructor Summary
Constructors Constructor Description ReachingDefinitionTransfer()
Create a new ReachingDefinitionTransfer.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ReachingDefinitionStore
initialStore(UnderlyingAST underlyingAST, @Nullable java.util.List<LocalVariableNode> parameters)
Returns the initial store to be used by the org.checkerframework.dataflow analysis.RegularTransferResult<UnusedAbstractValue,ReachingDefinitionStore>
visitAssignment(AssignmentNode n, TransferInput<UnusedAbstractValue,ReachingDefinitionStore> p)
RegularTransferResult<UnusedAbstractValue,ReachingDefinitionStore>
visitNode(Node n, TransferInput<UnusedAbstractValue,ReachingDefinitionStore> 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, 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, 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, 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
-
initialStore
public ReachingDefinitionStore initialStore(UnderlyingAST underlyingAST, @Nullable java.util.List<LocalVariableNode> parameters)
Description copied from interface:ForwardTransferFunction
Returns the initial store to be used by the org.checkerframework.dataflow analysis.- Specified by:
initialStore
in interfaceForwardTransferFunction<UnusedAbstractValue,ReachingDefinitionStore>
- Parameters:
underlyingAST
- an abstract syntax treeparameters
- a list of local variable nodes representing formal parameters (if any)- Returns:
- the initial store
-
visitNode
public RegularTransferResult<UnusedAbstractValue,ReachingDefinitionStore> visitNode(Node n, TransferInput<UnusedAbstractValue,ReachingDefinitionStore> p)
- Specified by:
visitNode
in classAbstractNodeVisitor<TransferResult<UnusedAbstractValue,ReachingDefinitionStore>,TransferInput<UnusedAbstractValue,ReachingDefinitionStore>>
-
visitAssignment
public RegularTransferResult<UnusedAbstractValue,ReachingDefinitionStore> visitAssignment(AssignmentNode n, TransferInput<UnusedAbstractValue,ReachingDefinitionStore> p)
- Specified by:
visitAssignment
in interfaceNodeVisitor<TransferResult<UnusedAbstractValue,ReachingDefinitionStore>,TransferInput<UnusedAbstractValue,ReachingDefinitionStore>>
- Overrides:
visitAssignment
in classAbstractNodeVisitor<TransferResult<UnusedAbstractValue,ReachingDefinitionStore>,TransferInput<UnusedAbstractValue,ReachingDefinitionStore>>
-
-