Class LeastUpperBoundLogic
java.lang.Object
com.github.javaparser.symbolsolver.resolution.typeinference.LeastUpperBoundLogic
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescription(package private) static class -
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate ResolvedTypebest(List<ResolvedType> minimalCandidates) private ResolvedTypebound(ResolvedType type, ResolvedWildcard.BoundType boundType) private booleanprivate ResolvedTypeconcreteType(ResolvedType type) private List<Set<ResolvedType>> erased(List<Set<ResolvedType>> typeSets) private voidfilterEnumType(Set<ResolvedType> resolvedTypes) private List<ResolvedType> intersection(List<Set<ResolvedType>> supertypes) private booleanisEnum(ResolvedType type) private booleanisSubstituable(ResolvedTypeParameterDeclaration typeDecl, ResolvedType type) private ResolvedTypelcta(ResolvedType type1, ResolvedType type2) private ResolvedTypelctaBothWildcards(ResolvedWildcard type1, ResolvedWildcard type2) private ResolvedTypelctaNoWildcard(ResolvedType type1, ResolvedType type2) private ResolvedTypelctaOneWildcard(ResolvedType rawType, ResolvedWildcard wildcardType) private ResolvedTypeprivate ResolvedTypeleastContainingTypeArgument(ResolvedType type1, ResolvedType type2) lub(Set<ResolvedType> types) See JLS 4.10.4.private List<ResolvedType> minimalCandidates(List<ResolvedType> erasedCandidates) Let MEC, the minimal erased candidate set for U1 ...static LeastUpperBoundLogicof()private com.google.common.collect.Multimap<ResolvedType, ResolvedType> relevantParameterizations(List<ResolvedType> minimalErasedCandidates, List<Set<ResolvedType>> supertypes) For any element G of MEC that is a generic type, let the "relevant" parameterizations of G, Relevant(G), be: Relevant(G) = { V | 1 ≤ i ≤ k: V in ST(Ui) and V = Ginvalid input: '<'...> }private ResolvedTypesubstituteType(ResolvedType type1, LeastUpperBoundLogic.TypeSubstitution typeSubstitution) private Set<ResolvedType> private Set<ResolvedType> supertypes(ResolvedType type) private List<Set<ResolvedType>> supertypes(Set<ResolvedType> types) private Set<ResolvedType> toSet(ResolvedType... resolvedTypes) private Set<ResolvedType> union(List<Set<ResolvedType>> supertypes)
-
Field Details
-
lubCache
-
-
Constructor Details
-
LeastUpperBoundLogic
private LeastUpperBoundLogic()
-
-
Method Details
-
of
-
lub
See JLS 4.10.4. Least Upper Bound. -
concreteType
-
isEnum
-
filterEnumType
-
supertypes
-
supertypes
-
supertypes
-
erased
-
intersection
-
union
-
minimalCandidates
Let MEC, the minimal erased candidate set for U1 ... Uk, be: MEC = { V | V in EC, and for all W != V in EC, it is not the case that W invalid input: '<': V }- Parameters:
erasedCandidates-- Returns:
-
relevantParameterizations
private com.google.common.collect.Multimap<ResolvedType, ResolvedType> relevantParameterizations(List<ResolvedType> minimalErasedCandidates, List<Set<ResolvedType>> supertypes) For any element G of MEC that is a generic type, let the "relevant" parameterizations of G, Relevant(G), be: Relevant(G) = { V | 1 ≤ i ≤ k: V in ST(Ui) and V = Ginvalid input: '<'...> }- Parameters:
minimalErasedCandidates- MECsupertypes-- Returns:
- the set of known parameterizations for each generic type G of MEC
-
best
-
leastContainingParameterization
-
leastContainingTypeArgument
-
isSubstituable
-
boundedAsObject
-
substituteType
private ResolvedType substituteType(ResolvedType type1, LeastUpperBoundLogic.TypeSubstitution typeSubstitution) -
substitution
private LeastUpperBoundLogic.TypeSubstitution substitution(List<Pair<ResolvedTypeParameterDeclaration, ResolvedType>> pairs) -
lcta
-
lctaNoWildcard
-
lctaOneWildcard
-
lctaBothWildcards
-
bound
-
toSet
-