java.lang.Object
org.checkerframework.framework.util.typeinference.GlbUtil

public class GlbUtil extends Object
A class used to determine the greatest lower bounds for a set of AnnotatedTypeMirrors.
  • Constructor Details

    • GlbUtil

      public GlbUtil()
  • Method Details

    • glbAll

      Returns the greatest lower bound of the given TypeMirrors. 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 glb
      typeFactory - 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 place
      typeFactory - the type factory