Class IndexAbstractTransfer
- java.lang.Object
-
- org.checkerframework.dataflow.cfg.node.AbstractNodeVisitor<TransferResult<V,S>,TransferInput<V,S>>
-
- org.checkerframework.framework.flow.CFAbstractTransfer<CFValue,CFStore,CFTransfer>
-
- org.checkerframework.framework.flow.CFTransfer
-
- org.checkerframework.checker.index.IndexAbstractTransfer
-
- All Implemented Interfaces:
ForwardTransferFunction<CFValue,CFStore>
,TransferFunction<CFValue,CFStore>
,NodeVisitor<TransferResult<CFValue,CFStore>,TransferInput<CFValue,CFStore>>
- Direct Known Subclasses:
LessThanTransfer
,LowerBoundTransfer
,SearchIndexTransfer
,UpperBoundTransfer
public abstract class IndexAbstractTransfer extends CFTransfer
This class provides methods shared by the Index Checker's internal checkers in their transfer functions. In particular, it provides a common framework for visiting comparison operators.
-
-
Field Summary
-
Fields inherited from class org.checkerframework.framework.flow.CFAbstractTransfer
analysis, sequentialSemantics
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
IndexAbstractTransfer(CFAnalysis analysis)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract void
refineGT(Node left, javax.lang.model.element.AnnotationMirror leftAnno, Node right, javax.lang.model.element.AnnotationMirror rightAnno, CFStore store, TransferInput<CFValue,CFStore> in)
protected abstract void
refineGTE(Node left, javax.lang.model.element.AnnotationMirror leftAnno, Node right, javax.lang.model.element.AnnotationMirror rightAnno, CFStore store, TransferInput<CFValue,CFStore> in)
TransferResult<CFValue,CFStore>
visitGreaterThan(GreaterThanNode node, TransferInput<CFValue,CFStore> in)
TransferResult<CFValue,CFStore>
visitGreaterThanOrEqual(GreaterThanOrEqualNode node, TransferInput<CFValue,CFStore> in)
TransferResult<CFValue,CFStore>
visitLessThan(LessThanNode node, TransferInput<CFValue,CFStore> in)
TransferResult<CFValue,CFStore>
visitLessThanOrEqual(LessThanOrEqualNode node, TransferInput<CFValue,CFStore> in)
-
Methods inherited from class org.checkerframework.framework.flow.CFAbstractTransfer
addInformationFromPreconditions, createTransferResult, finishValue, finishValue, getNarrowedValue, getValueFromFactory, getWidenedValue, initialStore, insertIntoStores, isNotFullyInitializedReceiver, moreSpecificValue, processCommonAssignment, processConditionalPostconditions, processPostconditions, recreateTransferResult, setFixedInitialStore, splitAssignments, strengthenAnnotationOfEqualTo, usesSequentialSemantics, visitArrayAccess, visitAssignment, visitCase, visitClassName, visitConditionalNot, visitDeconstructorPattern, visitEqualTo, visitExpressionStatement, visitFieldAccess, visitInstanceOf, visitLambdaResultExpression, visitLocalVariable, visitMethodInvocation, visitNarrowingConversion, visitNode, visitNotEqual, visitObjectCreation, visitReturn, visitStringConversion, visitSwitchExpressionNode, visitTernaryExpression, visitThis, visitVariableDeclaration, visitWideningConversion
-
Methods inherited from class org.checkerframework.dataflow.cfg.node.AbstractNodeVisitor
visitArrayCreation, visitArrayType, visitAssertionError, visitBitwiseAnd, visitBitwiseComplement, visitBitwiseOr, visitBitwiseXor, visitBooleanLiteral, visitCharacterLiteral, visitClassDeclaration, visitConditionalAnd, visitConditionalOr, visitDoubleLiteral, visitExplicitThis, visitFloatingDivision, visitFloatingRemainder, visitFloatLiteral, visitImplicitThis, visitIntegerDivision, visitIntegerLiteral, visitIntegerRemainder, visitLeftShift, visitLongLiteral, visitMarker, visitMemberReference, visitMethodAccess, visitNullChk, visitNullLiteral, visitNumericalAddition, visitNumericalMinus, visitNumericalMultiplication, visitNumericalPlus, visitNumericalSubtraction, visitPackageName, visitParameterizedType, visitPrimitiveType, visitShortLiteral, visitSignedRightShift, visitStringConcatenate, visitStringLiteral, visitSuper, visitSynchronized, visitThrow, visitTypeCast, visitUnsignedRightShift, visitValueLiteral
-
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
visitArrayCreation, visitArrayType, visitAssertionError, visitBitwiseAnd, visitBitwiseComplement, visitBitwiseOr, visitBitwiseXor, visitBooleanLiteral, visitCharacterLiteral, visitClassDeclaration, visitConditionalAnd, visitConditionalOr, visitDoubleLiteral, visitExplicitThis, visitFloatingDivision, visitFloatingRemainder, visitFloatLiteral, visitImplicitThis, visitIntegerDivision, visitIntegerLiteral, visitIntegerRemainder, visitLeftShift, visitLongLiteral, visitMarker, visitMemberReference, visitMethodAccess, visitNullChk, visitNullLiteral, visitNumericalAddition, visitNumericalMinus, visitNumericalMultiplication, visitNumericalPlus, visitNumericalSubtraction, visitPackageName, visitParameterizedType, visitPrimitiveType, visitShortLiteral, visitSignedRightShift, visitStringConcatenate, visitStringLiteral, visitSuper, visitSynchronized, visitThrow, visitTypeCast, visitUnsignedRightShift
-
-
-
-
Constructor Detail
-
IndexAbstractTransfer
protected IndexAbstractTransfer(CFAnalysis analysis)
-
-
Method Detail
-
visitGreaterThan
public TransferResult<CFValue,CFStore> visitGreaterThan(GreaterThanNode node, TransferInput<CFValue,CFStore> in)
- Specified by:
visitGreaterThan
in interfaceNodeVisitor<TransferResult<CFValue,CFStore>,TransferInput<CFValue,CFStore>>
- Overrides:
visitGreaterThan
in classAbstractNodeVisitor<TransferResult<CFValue,CFStore>,TransferInput<CFValue,CFStore>>
-
visitGreaterThanOrEqual
public TransferResult<CFValue,CFStore> visitGreaterThanOrEqual(GreaterThanOrEqualNode node, TransferInput<CFValue,CFStore> in)
- Specified by:
visitGreaterThanOrEqual
in interfaceNodeVisitor<TransferResult<CFValue,CFStore>,TransferInput<CFValue,CFStore>>
- Overrides:
visitGreaterThanOrEqual
in classAbstractNodeVisitor<TransferResult<CFValue,CFStore>,TransferInput<CFValue,CFStore>>
-
visitLessThanOrEqual
public TransferResult<CFValue,CFStore> visitLessThanOrEqual(LessThanOrEqualNode node, TransferInput<CFValue,CFStore> in)
- Specified by:
visitLessThanOrEqual
in interfaceNodeVisitor<TransferResult<CFValue,CFStore>,TransferInput<CFValue,CFStore>>
- Overrides:
visitLessThanOrEqual
in classAbstractNodeVisitor<TransferResult<CFValue,CFStore>,TransferInput<CFValue,CFStore>>
-
visitLessThan
public TransferResult<CFValue,CFStore> visitLessThan(LessThanNode node, TransferInput<CFValue,CFStore> in)
- Specified by:
visitLessThan
in interfaceNodeVisitor<TransferResult<CFValue,CFStore>,TransferInput<CFValue,CFStore>>
- Overrides:
visitLessThan
in classAbstractNodeVisitor<TransferResult<CFValue,CFStore>,TransferInput<CFValue,CFStore>>
-
refineGT
protected abstract void refineGT(Node left, javax.lang.model.element.AnnotationMirror leftAnno, Node right, javax.lang.model.element.AnnotationMirror rightAnno, CFStore store, TransferInput<CFValue,CFStore> in)
-
-