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 ResolvedType
best
(List<ResolvedType> minimalCandidates) private ResolvedType
bound
(ResolvedType type, ResolvedWildcard.BoundType boundType) private boolean
private ResolvedType
concreteType
(ResolvedType type) private List
<Set<ResolvedType>> erased
(List<Set<ResolvedType>> typeSets) private void
filterEnumType
(Set<ResolvedType> resolvedTypes) private List
<ResolvedType> intersection
(List<Set<ResolvedType>> supertypes) private boolean
isEnum
(ResolvedType type) private boolean
isSubstituable
(ResolvedTypeParameterDeclaration typeDecl, ResolvedType type) private ResolvedType
lcta
(ResolvedType type1, ResolvedType type2) private ResolvedType
lctaBothWildcards
(ResolvedWildcard type1, ResolvedWildcard type2) private ResolvedType
lctaNoWildcard
(ResolvedType type1, ResolvedType type2) private ResolvedType
lctaOneWildcard
(ResolvedType rawType, ResolvedWildcard wildcardType) private ResolvedType
private ResolvedType
leastContainingTypeArgument
(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 LeastUpperBoundLogic
of()
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 ResolvedType
substituteType
(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
-