Class CFAbstractValue.ValueLub
java.lang.Object
CFAbstractValue<V>.AnnotationSetCombiner
org.checkerframework.framework.flow.CFAbstractValue.ValueLub
- Enclosing class:
- CFAbstractValue<V extends CFAbstractValue<V>>
Computes the least upper bound or, if
shouldWiden
is true, an upper bounds of two sets
of annotations. The computation accounts for sets that are missing annotations in hierarchies.-
Constructor Summary
ConstructorDescriptionValueLub
(boolean shouldWiden) Creates aCFAbstractValue<V extends CFAbstractValue<V>>.ValueLub
. -
Method Summary
Modifier and TypeMethodDescriptionprotected @Nullable AnnotationMirror
combineNoAnnotations
(AnnotatedTypeMirror.AnnotatedTypeVariable aAtv, AnnotatedTypeMirror.AnnotatedTypeVariable bAtv, AnnotationMirror top, boolean canCombinedSetBeMissingAnnos) Returns the primary annotation that result from of combining the twoAnnotatedTypeMirror.AnnotatedTypeVariable
.protected @Nullable AnnotationMirror
combineOneAnnotation
(AnnotationMirror annotation, AnnotatedTypeMirror.AnnotatedTypeVariable typeVar, AnnotationMirror top, boolean canCombinedSetBeMissingAnnos) Returns the result of combiningannotation
withtypeVar
.protected @Nullable AnnotationMirror
Returns the result of combining the two annotations.Methods inherited from class org.checkerframework.framework.flow.CFAbstractValue.AnnotationSetCombiner
combineSets
-
Constructor Details
-
ValueLub
public ValueLub(boolean shouldWiden) Creates aCFAbstractValue<V extends CFAbstractValue<V>>.ValueLub
.- Parameters:
shouldWiden
- if true, this class computes an upper bound
-
-
Method Details
-
combineTwoAnnotations
protected @Nullable AnnotationMirror combineTwoAnnotations(AnnotationMirror a, AnnotationMirror b, AnnotationMirror top) Description copied from class:CFAbstractValue.AnnotationSetCombiner
Returns the result of combining the two annotations. This method is called when an annotation exists in both sets for the hierarchy whose top istop
.- Specified by:
combineTwoAnnotations
in classCFAbstractValue<V extends CFAbstractValue<V>>.AnnotationSetCombiner
- Parameters:
a
- an annotation in the hierarchyb
- an annotation in the hierarchytop
- the top annotation in the hierarchy- Returns:
- the result of combining the two annotations or null if no combination exists
-
combineNoAnnotations
protected @Nullable AnnotationMirror combineNoAnnotations(AnnotatedTypeMirror.AnnotatedTypeVariable aAtv, AnnotatedTypeMirror.AnnotatedTypeVariable bAtv, AnnotationMirror top, boolean canCombinedSetBeMissingAnnos) Description copied from class:CFAbstractValue.AnnotationSetCombiner
Returns the primary annotation that result from of combining the twoAnnotatedTypeMirror.AnnotatedTypeVariable
. If the result has not primary annotation, thenull
is returned. This method is called when no annotation exists in either sets for the hierarchy whose top istop
.- Specified by:
combineNoAnnotations
in classCFAbstractValue<V extends CFAbstractValue<V>>.AnnotationSetCombiner
- Parameters:
aAtv
- a type variable that does not have a primary annotation intop
hierarchybAtv
- a type variable that does not have a primary annotation intop
hierarchytop
- the top annotation in the hierarchycanCombinedSetBeMissingAnnos
- whether or not- Returns:
- the result of combining the two type variables, which may be null
-
combineOneAnnotation
protected @Nullable AnnotationMirror combineOneAnnotation(AnnotationMirror annotation, AnnotatedTypeMirror.AnnotatedTypeVariable typeVar, AnnotationMirror top, boolean canCombinedSetBeMissingAnnos) Description copied from class:CFAbstractValue.AnnotationSetCombiner
Returns the result of combiningannotation
withtypeVar
.This is called when an annotation exists for the hierarchy in one set, but not the other.
- Specified by:
combineOneAnnotation
in classCFAbstractValue<V extends CFAbstractValue<V>>.AnnotationSetCombiner
- Parameters:
annotation
- an annotationtypeVar
- a type variable that does not have a primary annotation in the hierarchytop
- the top annotation of the hierarchycanCombinedSetBeMissingAnnos
- whether or not- Returns:
- the result of combining
annotation
withtypeVar
-