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
-
Method Summary
Modifier and TypeMethodDescriptioninitialStore
(UnderlyingAST underlyingAST, @Nullable List<LocalVariableNode> parameters) Returns the initial store to be used by the org.checkerframework.dataflow analysis.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, 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, 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
-
Constructor Details
-
ReachingDefinitionTransfer
public ReachingDefinitionTransfer()Create a new ReachingDefinitionTransfer.
-
-
Method Details
-
initialStore
public ReachingDefinitionStore initialStore(UnderlyingAST underlyingAST, @Nullable 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) -
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>>
-