protected class CFAbstractValue.ValueLub extends CFAbstractValue.AnnotationSetCombiner
shouldWiden
is true, an upper bounds of two sets
of annotations. The computation accounts for sets that are missing annotations in hierarchies.Constructor and Description |
---|
ValueLub(boolean shouldWiden)
Creates a
CFAbstractValue.ValueLub . |
Modifier and Type | Method and Description |
---|---|
protected @Nullable AnnotationMirror |
combineNoAnnotations(AnnotatedTypeMirror.AnnotatedTypeVariable aAtv,
AnnotatedTypeMirror.AnnotatedTypeVariable bAtv,
AnnotationMirror top,
boolean canCombinedSetBeMissingAnnos)
Returns the primary annotation that result from of combining the two
AnnotatedTypeMirror.AnnotatedTypeVariable . |
protected @Nullable AnnotationMirror |
combineOneAnnotation(AnnotationMirror annotation,
AnnotatedTypeMirror.AnnotatedTypeVariable typeVar,
AnnotationMirror top,
boolean canCombinedSetBeMissingAnnos)
Returns the result of combining
annotation with typeVar . |
protected @Nullable AnnotationMirror |
combineTwoAnnotations(AnnotationMirror a,
AnnotationMirror b,
AnnotationMirror top)
Returns the result of combining the two annotations.
|
combineSets
public ValueLub(boolean shouldWiden)
CFAbstractValue.ValueLub
.shouldWiden
- if true, this class computes an upper boundprotected @Nullable AnnotationMirror combineTwoAnnotations(AnnotationMirror a, AnnotationMirror b, AnnotationMirror top)
CFAbstractValue.AnnotationSetCombiner
top
.combineTwoAnnotations
in class CFAbstractValue.AnnotationSetCombiner
a
- an annotation in the hierarchyb
- an annotation in the hierarchytop
- the top annotation in the hierarchyprotected @Nullable AnnotationMirror combineNoAnnotations(AnnotatedTypeMirror.AnnotatedTypeVariable aAtv, AnnotatedTypeMirror.AnnotatedTypeVariable bAtv, AnnotationMirror top, boolean canCombinedSetBeMissingAnnos)
CFAbstractValue.AnnotationSetCombiner
AnnotatedTypeMirror.AnnotatedTypeVariable
. If the result has not primary annotation, the null
is
returned. This method is called when no annotation exists in either sets for the hierarchy
whose top is top
.combineNoAnnotations
in class CFAbstractValue.AnnotationSetCombiner
aAtv
- a type variable that does not have a primary annotation in top
hierarchybAtv
- a type variable that does not have a primary annotation in top
hierarchytop
- the top annotation in the hierarchycanCombinedSetBeMissingAnnos
- whether or notprotected @Nullable AnnotationMirror combineOneAnnotation(AnnotationMirror annotation, AnnotatedTypeMirror.AnnotatedTypeVariable typeVar, AnnotationMirror top, boolean canCombinedSetBeMissingAnnos)
CFAbstractValue.AnnotationSetCombiner
annotation
with typeVar
.
This is called when an annotation exists for the hierarchy in on set, but not the other.
combineOneAnnotation
in class CFAbstractValue.AnnotationSetCombiner
annotation
- an annotationtypeVar
- a type variable that does not have a primary annotation in the hierarchytop
- the top annotation of the hierarchycanCombinedSetBeMissingAnnos
- whether or notannotation
with typeVar