Class BusyExprTransfer
java.lang.Object
org.checkerframework.dataflow.cfg.node.AbstractNodeVisitor<TransferResult<UnusedAbstractValue,BusyExprStore>,TransferInput<UnusedAbstractValue,BusyExprStore>>
org.checkerframework.dataflow.busyexpr.BusyExprTransfer
- All Implemented Interfaces:
BackwardTransferFunction<UnusedAbstractValue,
,BusyExprStore> TransferFunction<UnusedAbstractValue,
,BusyExprStore> NodeVisitor<TransferResult<UnusedAbstractValue,
BusyExprStore>, TransferInput<UnusedAbstractValue, BusyExprStore>>
public class BusyExprTransfer
extends AbstractNodeVisitor<TransferResult<UnusedAbstractValue,BusyExprStore>,TransferInput<UnusedAbstractValue,BusyExprStore>>
implements BackwardTransferFunction<UnusedAbstractValue,BusyExprStore>
A busy expression 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.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, 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, 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
-
BusyExprTransfer
public BusyExprTransfer()
-
-
Method Details
-
initialNormalExitStore
public BusyExprStore 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<UnusedAbstractValue,
BusyExprStore> - 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<UnusedAbstractValue,
BusyExprStore> - 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,BusyExprStore> visitNode(Node n, TransferInput<UnusedAbstractValue, BusyExprStore> p) - Specified by:
visitNode
in classAbstractNodeVisitor<TransferResult<UnusedAbstractValue,
BusyExprStore>, TransferInput<UnusedAbstractValue, BusyExprStore>>
-
visitAssignment
public RegularTransferResult<UnusedAbstractValue,BusyExprStore> visitAssignment(AssignmentNode n, TransferInput<UnusedAbstractValue, BusyExprStore> p) - Specified by:
visitAssignment
in interfaceNodeVisitor<TransferResult<UnusedAbstractValue,
BusyExprStore>, TransferInput<UnusedAbstractValue, BusyExprStore>> - Overrides:
visitAssignment
in classAbstractNodeVisitor<TransferResult<UnusedAbstractValue,
BusyExprStore>, TransferInput<UnusedAbstractValue, BusyExprStore>>
-
visitMethodInvocation
public RegularTransferResult<UnusedAbstractValue,BusyExprStore> visitMethodInvocation(MethodInvocationNode n, TransferInput<UnusedAbstractValue, BusyExprStore> p) - Specified by:
visitMethodInvocation
in interfaceNodeVisitor<TransferResult<UnusedAbstractValue,
BusyExprStore>, TransferInput<UnusedAbstractValue, BusyExprStore>> - Overrides:
visitMethodInvocation
in classAbstractNodeVisitor<TransferResult<UnusedAbstractValue,
BusyExprStore>, TransferInput<UnusedAbstractValue, BusyExprStore>>
-
visitObjectCreation
public RegularTransferResult<UnusedAbstractValue,BusyExprStore> visitObjectCreation(ObjectCreationNode n, TransferInput<UnusedAbstractValue, BusyExprStore> p) - Specified by:
visitObjectCreation
in interfaceNodeVisitor<TransferResult<UnusedAbstractValue,
BusyExprStore>, TransferInput<UnusedAbstractValue, BusyExprStore>> - Overrides:
visitObjectCreation
in classAbstractNodeVisitor<TransferResult<UnusedAbstractValue,
BusyExprStore>, TransferInput<UnusedAbstractValue, BusyExprStore>>
-
visitReturn
public RegularTransferResult<UnusedAbstractValue,BusyExprStore> visitReturn(ReturnNode n, TransferInput<UnusedAbstractValue, BusyExprStore> p) - Specified by:
visitReturn
in interfaceNodeVisitor<TransferResult<UnusedAbstractValue,
BusyExprStore>, TransferInput<UnusedAbstractValue, BusyExprStore>> - Overrides:
visitReturn
in classAbstractNodeVisitor<TransferResult<UnusedAbstractValue,
BusyExprStore>, TransferInput<UnusedAbstractValue, BusyExprStore>>
-