protected abstract class InitializationAnnotatedTypeFactory.InitializationQualifierHierarchy extends MostlyNoElementQualifierHierarchy
QualifierHierarchy
for the initialization type system.
Type systems extending the Initialization Checker should call methods isSubtypeInitialization(javax.lang.model.element.AnnotationMirror, org.checkerframework.framework.util.QualifierKind, javax.lang.model.element.AnnotationMirror, org.checkerframework.framework.util.QualifierKind)
and leastUpperBoundInitialization(javax.lang.model.element.AnnotationMirror, org.checkerframework.framework.util.QualifierKind, javax.lang.model.element.AnnotationMirror, org.checkerframework.framework.util.QualifierKind)
for appropriate qualifiers.
See protected subclass NullnessQualifierHierarchy within class NullnessChecker
for an
example.
bottoms, bottomsMap, kindToElementlessQualifier, qualifierKindHierarchy, tops, topsMap
Modifier | Constructor and Description |
---|---|
protected |
InitializationQualifierHierarchy()
Create an InitializationQualifierHierarchy.
|
Modifier and Type | Method and Description |
---|---|
boolean |
isSubtypeInitialization(AnnotationMirror subAnno,
QualifierKind subKind,
AnnotationMirror superAnno,
QualifierKind superKind)
Subtype testing for initialization annotations.
|
protected AnnotationMirror |
leastUpperBoundInitialization(AnnotationMirror anno1,
QualifierKind qual1,
AnnotationMirror anno2,
QualifierKind qual2)
Compute the least upper bound of two initialization qualifiers.
|
protected TypeMirror |
lubTypeFrame(TypeMirror a,
TypeMirror b)
Returns the least upper bound of two types.
|
greatestLowerBound, greatestLowerBoundWithElements, isSubtype, isSubtypeWithElements, leastUpperBound, leastUpperBoundWithElements
createBottomsMap, createElementlessQualifierMap, createQualifierKindHierarchy, createTopsMap, findAnnotationInHierarchy, findAnnotationInSameHierarchy, getBottomAnnotation, getBottomAnnotations, getPolymorphicAnnotation, getQualifierKind, getQualifierKind, getTopAnnotation, getTopAnnotations, isPolymorphicQualifier, isValid
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
assertSameSize, assertSameSize, canHaveEmptyAnnotationSet, getWidth, greatestLowerBound, greatestLowerBounds, greatestLowerBounds, greatestLowerBoundsTypeVariable, greatestLowerBoundTypeVariable, isSubtype, isSubtype, isSubtype, isSubtypeTypeVariable, isSubtypeTypeVariable, leastUpperBound, leastUpperBounds, leastUpperBounds, leastUpperBoundsTypeVariable, leastUpperBoundTypeVariable, numberOfIterationsBeforeWidening, updateMappingToMutableSet, widenedUpperBound
protected InitializationQualifierHierarchy()
public boolean isSubtypeInitialization(AnnotationMirror subAnno, QualifierKind subKind, AnnotationMirror superAnno, QualifierKind superKind)
subAnno
- subtype annotationsubKind
- subtype kindsuperAnno
- supertype annotationsuperKind
- supertype kindprotected AnnotationMirror leastUpperBoundInitialization(AnnotationMirror anno1, QualifierKind qual1, AnnotationMirror anno2, QualifierKind qual2)
anno1
- an initialization qualifierqual1
- a qualifier kindanno2
- an initialization qualifierqual2
- a qualifier kindprotected TypeMirror lubTypeFrame(TypeMirror a, TypeMirror b)