Class IndexRefinementInfo
java.lang.Object
org.checkerframework.checker.index.IndexRefinementInfo
This struct contains all of the information that the refinement functions need. It's called by
each node function (i.e. greater than node, less than node, etc.) and then the results are passed
to the refinement function in whatever order is appropriate for that node. Its constructor
contains all of its logic.
-
Field Summary
Modifier and TypeFieldDescriptionfinal CFStore
The else store.final Node
The left operand.final @Nullable AnnotationMirror
Annotation for left expressions.The new result, after refinement.final Node
The right operand.final @Nullable AnnotationMirror
Annotation for right expressions.final CFStore
The then store. -
Constructor Summary
ConstructorDescriptionIndexRefinementInfo
(TransferResult<CFValue, CFStore> result, CFAbstractAnalysis<?, ?, ?> analysis, BinaryOperationNode node) IndexRefinementInfo
(TransferResult<CFValue, CFStore> result, CFAbstractAnalysis<?, ?, ?> analysis, Node right, Node left) Creates a new IndexRefinementInfo. -
Method Summary
-
Field Details
-
left
The left operand. -
right
The right operand. -
leftAnno
Annotation for left expressions. Might be null if dataflow doesn't have a value for the expression. -
rightAnno
Annotation for right expressions. Might be null if dataflow doesn't have a value for the expression. -
thenStore
The then store. -
elseStore
The else store. -
newResult
The new result, after refinement.
-
-
Constructor Details
-
IndexRefinementInfo
public IndexRefinementInfo(TransferResult<CFValue, CFStore> result, CFAbstractAnalysis<?, ?, ?> analysis, Node right, Node left) Creates a new IndexRefinementInfo.- Parameters:
result
- the new result, after refinementanalysis
- the CFAbstractAnalysisright
- the right operandleft
- the left operand
-
IndexRefinementInfo
public IndexRefinementInfo(TransferResult<CFValue, CFStore> result, CFAbstractAnalysis<?, ?, ?> analysis, BinaryOperationNode node)
-