Class TypeHelper
- java.lang.Object
-
- com.github.javaparser.symbolsolver.resolution.typeinference.TypeHelper
-
public class TypeHelper extends 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.- Author:
- Federico Tomassetti
-
-
Constructor Summary
Constructors Constructor Description TypeHelper()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static MethodType
getFunctionType(com.github.javaparser.resolution.types.ResolvedType type)
static com.github.javaparser.resolution.types.ResolvedType
glb(Set<com.github.javaparser.resolution.types.ResolvedType> types)
See JLS 5.1.10.static com.github.javaparser.utils.Pair<com.github.javaparser.resolution.types.ResolvedType,Boolean>
groundTargetTypeOfLambda(com.github.javaparser.ast.expr.LambdaExpr lambdaExpr, com.github.javaparser.resolution.types.ResolvedType T, com.github.javaparser.symbolsolver.model.resolution.TypeSolver typeSolver)
See JLS 15.27.3.static boolean
isCompatibleInALooseInvocationContext(com.github.javaparser.resolution.types.ResolvedType s, com.github.javaparser.resolution.types.ResolvedType t)
see https://docs.oracle.com/javase/specs/jls/se8/html/jls-5.html#jls-5.3static boolean
isCompatibleInALooseInvocationContext(com.github.javaparser.symbolsolver.model.resolution.TypeSolver typeSolver, com.github.javaparser.ast.expr.Expression expression, com.github.javaparser.resolution.types.ResolvedType t)
see https://docs.oracle.com/javase/specs/jls/se8/html/jls-5.html#jls-5.3static boolean
isCompatibleInAStrictInvocationContext(com.github.javaparser.ast.expr.Expression expression, com.github.javaparser.resolution.types.ResolvedType t)
see https://docs.oracle.com/javase/specs/jls/se8/html/jls-5.html#jls-5.3static boolean
isInferenceVariable(com.github.javaparser.resolution.types.ResolvedType type)
static boolean
isProperType(com.github.javaparser.resolution.types.ResolvedType type)
The term proper type excludes such "types" that mention inference variables.static com.github.javaparser.resolution.types.ResolvedType
leastUpperBound(Set<com.github.javaparser.resolution.types.ResolvedType> types)
See JLS 4.10.4.static Set<InferenceVariable>
usedInferenceVariables(com.github.javaparser.resolution.types.ResolvedType type)
-
-
-
Method Detail
-
isProperType
public static boolean isProperType(com.github.javaparser.resolution.types.ResolvedType type)
The term proper type excludes such "types" that mention inference variables.
-
isCompatibleInAStrictInvocationContext
public static boolean isCompatibleInAStrictInvocationContext(com.github.javaparser.ast.expr.Expression expression, com.github.javaparser.resolution.types.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(com.github.javaparser.symbolsolver.model.resolution.TypeSolver typeSolver, com.github.javaparser.ast.expr.Expression expression, com.github.javaparser.resolution.types.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(com.github.javaparser.resolution.types.ResolvedType s, com.github.javaparser.resolution.types.ResolvedType t)
see https://docs.oracle.com/javase/specs/jls/se8/html/jls-5.html#jls-5.3- Parameters:
s
-t
-- Returns:
-
isInferenceVariable
public static boolean isInferenceVariable(com.github.javaparser.resolution.types.ResolvedType type)
-
usedInferenceVariables
public static Set<InferenceVariable> usedInferenceVariables(com.github.javaparser.resolution.types.ResolvedType type)
-
leastUpperBound
public static com.github.javaparser.resolution.types.ResolvedType leastUpperBound(Set<com.github.javaparser.resolution.types.ResolvedType> types)
See JLS 4.10.4. Least Upper Bound.
-
groundTargetTypeOfLambda
public static com.github.javaparser.utils.Pair<com.github.javaparser.resolution.types.ResolvedType,Boolean> groundTargetTypeOfLambda(com.github.javaparser.ast.expr.LambdaExpr lambdaExpr, com.github.javaparser.resolution.types.ResolvedType T, com.github.javaparser.symbolsolver.model.resolution.TypeSolver typeSolver)
See JLS 15.27.3. Type of a Lambda Expression- Returns:
-
getFunctionType
public static MethodType getFunctionType(com.github.javaparser.resolution.types.ResolvedType type)
-
glb
public static com.github.javaparser.resolution.types.ResolvedType glb(Set<com.github.javaparser.resolution.types.ResolvedType> types)
See JLS 5.1.10. Capture Conversion.
-
-