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 -
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
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, 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, 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, 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:ForwardTransferFunctionReturns the initial store to be used by the org.checkerframework.dataflow analysis.- Specified by:
initialStorein 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:
visitAssignmentin interfaceNodeVisitor<TransferResult<UnusedAbstractValue,ReachingDefinitionStore>, TransferInput<UnusedAbstractValue, ReachingDefinitionStore>> - Overrides:
visitAssignmentin classAbstractNodeVisitor<TransferResult<UnusedAbstractValue,ReachingDefinitionStore>, TransferInput<UnusedAbstractValue, ReachingDefinitionStore>>
-