Class TypeHelper
- java.lang.Object
-
- com.github.javaparser.symbolsolver.resolution.typeinference.TypeHelper
-
public class TypeHelper extends java.lang.Object
The term "type" is used loosely in this chapter to include type-like syntax that contains inference variables. Assertions that involve inference variables are assertions about every proper type that can be produced by replacing each inference variable with a proper type.
-
-
Constructor Summary
Constructors Constructor Description TypeHelper()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static boolean
areCompatibleThroughWideningPrimitiveConversion(ResolvedType s, ResolvedType t)
static boolean
areCompatibleThroughWideningReferenceConversion(ResolvedType s, ResolvedType t)
static MethodType
getFunctionType(ResolvedType type)
static ResolvedType
glb(java.util.Set<ResolvedType> types)
See JLS 5.1.10.static Pair<ResolvedType,java.lang.Boolean>
groundTargetTypeOfLambda(LambdaExpr lambdaExpr, ResolvedType T, TypeSolver typeSolver)
See JLS 15.27.3.static boolean
isCompatibleInALooseInvocationContext(ResolvedType s, ResolvedType t)
see https://docs.oracle.com/javase/specs/jls/se8/html/jls-5.html#jls-5.3static boolean
isCompatibleInALooseInvocationContext(TypeSolver typeSolver, Expression expression, ResolvedType t)
see https://docs.oracle.com/javase/specs/jls/se8/html/jls-5.html#jls-5.3static boolean
isCompatibleInAStrictInvocationContext(Expression expression, ResolvedType t)
see https://docs.oracle.com/javase/specs/jls/se8/html/jls-5.html#jls-5.3static boolean
isProperType(ResolvedType type)
The term proper type excludes such "types" that mention inference variables.static ResolvedType
leastUpperBound(java.util.Set<ResolvedType> types)
See JLS 4.10.4.private static ResolvedReferenceType
nonWildcardParameterizationOf(ResolvedReferenceType originalType, TypeSolver typeSolver)
See JLS 9.9static ResolvedType
toBoxedType(ResolvedPrimitiveType primitiveType)
static ResolvedType
toBoxedType(ResolvedPrimitiveType primitiveType, TypeSolver typeSolver)
static java.util.Set<InferenceVariable>
usedInferenceVariables(ResolvedType type)
-
-
-
Method Detail
-
isProperType
public static boolean isProperType(ResolvedType type)
The term proper type excludes such "types" that mention inference variables.
-
isCompatibleInAStrictInvocationContext
public static boolean isCompatibleInAStrictInvocationContext(Expression expression, ResolvedType t)
see https://docs.oracle.com/javase/specs/jls/se8/html/jls-5.html#jls-5.3- Parameters:
expression
-t
-- Returns:
-
isCompatibleInALooseInvocationContext
public static boolean isCompatibleInALooseInvocationContext(TypeSolver typeSolver, Expression expression, ResolvedType t)
see https://docs.oracle.com/javase/specs/jls/se8/html/jls-5.html#jls-5.3- Parameters:
expression
-t
-- Returns:
-
isCompatibleInALooseInvocationContext
public static boolean isCompatibleInALooseInvocationContext(ResolvedType s, ResolvedType t)
see https://docs.oracle.com/javase/specs/jls/se8/html/jls-5.html#jls-5.3- Parameters:
s
-t
-- Returns:
-
toBoxedType
public static ResolvedType toBoxedType(ResolvedPrimitiveType primitiveType)
-
toBoxedType
public static ResolvedType toBoxedType(ResolvedPrimitiveType primitiveType, TypeSolver typeSolver)
-
areCompatibleThroughWideningReferenceConversion
public static boolean areCompatibleThroughWideningReferenceConversion(ResolvedType s, ResolvedType t)
-
areCompatibleThroughWideningPrimitiveConversion
public static boolean areCompatibleThroughWideningPrimitiveConversion(ResolvedType s, ResolvedType t)
-
usedInferenceVariables
public static java.util.Set<InferenceVariable> usedInferenceVariables(ResolvedType type)
-
leastUpperBound
public static ResolvedType leastUpperBound(java.util.Set<ResolvedType> types)
See JLS 4.10.4. Least Upper Bound. The least upper bound, or "lub", of a set of reference types is a shared supertype that is more specific than any other shared supertype (that is, no other shared supertype is a subtype of the least upper bound).
-
groundTargetTypeOfLambda
public static Pair<ResolvedType,java.lang.Boolean> groundTargetTypeOfLambda(LambdaExpr lambdaExpr, ResolvedType T, TypeSolver typeSolver)
See JLS 15.27.3. Type of a Lambda Expression- Returns:
-
nonWildcardParameterizationOf
private static ResolvedReferenceType nonWildcardParameterizationOf(ResolvedReferenceType originalType, TypeSolver typeSolver)
See JLS 9.9
-
getFunctionType
public static MethodType getFunctionType(ResolvedType type)
-
glb
public static ResolvedType glb(java.util.Set<ResolvedType> types)
See JLS 5.1.10. Capture Conversion.
-
-