Class GlbUtil
java.lang.Object
org.checkerframework.framework.util.typeinference.GlbUtil
A class used to determine the greatest lower bounds for a set of AnnotatedTypeMirrors.
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic @Nullable AnnotatedTypeMirror
glbAll
(Map<AnnotatedTypeMirror, AnnotationMirrorSet> typeMirrors, AnnotatedTypeFactory typeFactory) Returns the greatest lower bound of the givenTypeMirror
s.static void
sortForGlb
(List<? extends AnnotatedTypeMirror> typeMirrors, AnnotatedTypeFactory typeFactory) Sort the list of type mirrors, placing supertypes first and subtypes last.
-
Constructor Details
-
GlbUtil
public GlbUtil()
-
-
Method Details
-
glbAll
public static @Nullable AnnotatedTypeMirror glbAll(Map<AnnotatedTypeMirror, AnnotationMirrorSet> typeMirrors, AnnotatedTypeFactory typeFactory) Returns the greatest lower bound of the givenTypeMirror
s. If any of the type mirrors are incomparable, Returns an AnnotatedNullType that contains the greatest lower bounds of the primary annotations of typeMirrors.Note: This method can be improved for wildcards and type variables.
- Parameters:
typeMirrors
- the types to glbtypeFactory
- the type factory- Returns:
- the greatest lower bound of typeMirrors
-
sortForGlb
public static void sortForGlb(List<? extends AnnotatedTypeMirror> typeMirrors, AnnotatedTypeFactory typeFactory) Sort the list of type mirrors, placing supertypes first and subtypes last.E.g. the list:
ArrayList<String>, List<String>, AbstractList<String>
becomes:List<String>, AbstractList<String>, ArrayList<String>
- Parameters:
typeMirrors
- the list to sort in placetypeFactory
- the type factory
-