Class 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.3
      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
      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
      static 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)  
    • Constructor Detail

      • TypeHelper

        public TypeHelper()
    • 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.