Class AbstractType
java.lang.Object
org.checkerframework.framework.util.typeinference8.types.AbstractType
- Direct Known Subclasses:
InferenceType,ProperType,UseOfVariable
As explained in section 18.1,
the JLS Chapter on type inference use the term "type" to "include type-like syntax that contains
inference variables". This class represents this types. Three subclasses of this class are:
ProperType: types that do not contain inference variablesVariable: inference variablesInferenceType: type-like syntax that contain at least one inference variable
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final Java8InferenceContextThe context object.final booleanTrue if the annotations on this type should be ignored.protected final AnnotatedTypeFactoryTheAnnotatedTypeFactory. -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedAbstractType(Java8InferenceContext context, boolean ignoreAnnotations) Creates anAbstractType. -
Method Summary
Modifier and TypeMethodDescriptionabstract AbstractTypeReturns a new type that is the same as this one except the variables ininstantiationshave been replaced by their instantiation.asSuper(TypeMirror superType) IfsuperTypeis a super type of this type, then this method returns the super type of this type that is the same class assuperType.capture(Java8InferenceContext context) Returns a new type that is the capture of this type.abstract AbstractTypecreate(AnnotatedTypeMirror atm, TypeMirror type, boolean ignoreAnnotations) Creates a type using the given types.booleanabstract AnnotatedTypeMirrorReturns the underlying Java type without inference variables.final AbstractTypeReturns the array component type fo this type or null if on does not exist.Returns new type whose Java type is the erasure of this type.If this type is a functional interface, then this method returns the parameter types of the function type of that functional interface.If this type is a functional interface, then this method returns the return type of the function type of that functional interface.abstract Collection<Variable> Returns a collection of all inference variables referenced by this type.Returns assuming type is an intersection type, this method returns the bounds in this type.abstract TypeMirrorReturns the underlying Java type without inference variables.abstract AbstractType.KindgetKind()Returns the kind ofAbstractType.Returns the most specific array type that is a super type of this type or null if one doesn't exist.abstract Set<AbstractQualifier> Returns the primary qualifiers on this type.Returns this type's type arguments or null if this type isn't a declared type.final TypeKindReturns the TypeKind of the underlying Java type.Assuming the type is a declared type, this method returns the upper bounds of its type parameters.Returns assuming this type is a type variable that has a lower bound, this method returns the lower bound of this type.Returns assuming this type is a type variable, this method returns the upper bound of this type.Returns if this type is a wildcard return its lower bound; otherwise, return null.Returns if this type is a wildcard return its upper bound; otherwise, return null.inthashCode()booleanReturns true if this type contains inference variables, but is not an inference variable.booleanReturns true if the type is a wildcard with a lower bound.booleanReturns true if this type is a type variable with a lower bound.abstract booleanisObject()Returns true if this type is java.lang.Object.booleanReturns true if the proper type is a parameterized class or interface type, or an inner class type of a parameterized class or interface type (directly or indirectly)booleanReturns true if this type is a primitive array.booleanisProper()Returns true if this type is a proper type.booleanisRaw()Returns true if the type is a raw type.booleanReturns true if the type is an unbound wildcard.booleanReturns true if the type is a wildcard with an upper bound.booleanReturns true if this type is a use of an inference variable.booleanReturns true if this type is a parameterized type whose has at least one wildcard as a type argument.replaceTypeArgs(List<AbstractType> args) Returns a new type that is the same type as this one, but whose type arguments areargs.
-
Field Details
-
context
The context object. -
typeFactory
TheAnnotatedTypeFactory. -
ignoreAnnotations
public final boolean ignoreAnnotationsTrue if the annotations on this type should be ignored.
-
-
Constructor Details
-
AbstractType
Creates anAbstractType.- Parameters:
context- the context objectignoreAnnotations- true if the annotations on this type should be ignored
-
-
Method Details
-
getKind
Returns the kind ofAbstractType.- Returns:
- the kind of
AbstractType
-
isProper
public boolean isProper()Returns true if this type is a proper type.- Returns:
- true if this type is a proper type
-
isUseOfVariable
public boolean isUseOfVariable()Returns true if this type is a use of an inference variable.- Returns:
- true if this type is a use of an inference variable
-
isInferenceType
public boolean isInferenceType()Returns true if this type contains inference variables, but is not an inference variable.- Returns:
- true if this type contains inference variables, but is not an inference variable
-
getTypeKind
Returns the TypeKind of the underlying Java type.- Returns:
- the TypeKind of the underlying Java type
-
create
public abstract AbstractType create(AnnotatedTypeMirror atm, TypeMirror type, boolean ignoreAnnotations) Creates a type using the given types.- Parameters:
atm- annotated type mirrortype- type mirrorignoreAnnotations- true if the annotations on this type should be ignored- Returns:
- the new type
-
getJavaType
Returns the underlying Java type without inference variables.- Returns:
- the underlying Java type without inference variables
-
getAnnotatedType
Returns the underlying Java type without inference variables.- Returns:
- the underlying Java type without inference variables
-
getInferenceVariables
Returns a collection of all inference variables referenced by this type.- Returns:
- a collection of all inference variables referenced by this type
-
applyInstantiations
Returns a new type that is the same as this one except the variables ininstantiationshave been replaced by their instantiation.- Returns:
- a new type that is the same as this one except the variables in
instantiationshave been replaced by their instantiation
-
isObject
public abstract boolean isObject()Returns true if this type is java.lang.Object.- Returns:
- true if this type is java.lang.Object
-
getTypeParameterBounds
Assuming the type is a declared type, this method returns the upper bounds of its type parameters. (A type parameter of a declared type, can't refer to any type being inferred, so they are proper types.)- Returns:
- the upper bounds of the type parameter of this type
-
capture
Returns a new type that is the capture of this type.- Parameters:
context- the context object- Returns:
- a new type that is the capture of this type
-
asSuper
IfsuperTypeis a super type of this type, then this method returns the super type of this type that is the same class assuperType. Otherwise, it returns null- Parameters:
superType- a type, need not be a super type of this type- Returns:
- super type of this type that is the same class as
superTypeor null if one doesn't exist
-
getFunctionTypeReturnType
If this type is a functional interface, then this method returns the return type of the function type of that functional interface. Otherwise, returns null.- Returns:
- the return type of the function type of this type or null if one doesn't exist
-
getFunctionTypeParameterTypes
If this type is a functional interface, then this method returns the parameter types of the function type of that functional interface. Otherwise, it returns null.- Returns:
- the parameter types of the function type of this type or null if no function type exists
-
isRaw
public boolean isRaw()Returns true if the type is a raw type.- Returns:
- true if the type is a raw type
-
replaceTypeArgs
Returns a new type that is the same type as this one, but whose type arguments areargs.- Parameters:
args- a list of type arguments- Returns:
- a new type that is the same type as this one, but whose type arguments are
args
-
isParameterizedType
public boolean isParameterizedType()Returns true if the proper type is a parameterized class or interface type, or an inner class type of a parameterized class or interface type (directly or indirectly)- Returns:
- true if T is a parameterized type
-
getMostSpecificArrayType
Returns the most specific array type that is a super type of this type or null if one doesn't exist.- Returns:
- the most specific array type that is a super type of this type or null if one doesn't exist
-
isPrimitiveArray
public boolean isPrimitiveArray()Returns true if this type is a primitive array.- Returns:
- true if this type is a primitive array
-
getIntersectionBounds
Returns assuming type is an intersection type, this method returns the bounds in this type.- Returns:
- assuming type is an intersection type, this method returns the bounds in this type
-
getTypeVarUpperBound
Returns assuming this type is a type variable, this method returns the upper bound of this type.- Returns:
- assuming this type is a type variable, this method returns the upper bound of this type
-
getTypeVarLowerBound
Returns assuming this type is a type variable that has a lower bound, this method returns the lower bound of this type.- Returns:
- assuming this type is a type variable that has a lower bound, this method returns the lower bound of this type
-
isLowerBoundTypeVariable
public boolean isLowerBoundTypeVariable()Returns true if this type is a type variable with a lower bound.- Returns:
- true if this type is a type variable with a lower bound
-
isWildcardParameterizedType
public boolean isWildcardParameterizedType()Returns true if this type is a parameterized type whose has at least one wildcard as a type argument.- Returns:
- true if this type is a parameterized type whose has at least one wildcard as a type argument
-
getTypeArguments
Returns this type's type arguments or null if this type isn't a declared type.- Returns:
- this type's type arguments or null this type isn't a declared type
-
isUnboundWildcard
public boolean isUnboundWildcard()Returns true if the type is an unbound wildcard.- Returns:
- true if the type is an unbound wildcard
-
isUpperBoundedWildcard
public boolean isUpperBoundedWildcard()Returns true if the type is a wildcard with an upper bound.- Returns:
- true if the type is a wildcard with an upper bound
-
isLowerBoundedWildcard
public boolean isLowerBoundedWildcard()Returns true if the type is a wildcard with a lower bound.- Returns:
- true if the type is a wildcard with a lower bound
-
getWildcardLowerBound
Returns if this type is a wildcard return its lower bound; otherwise, return null.- Returns:
- if this type is a wildcard return its lower bound; otherwise, return null
-
getWildcardUpperBound
Returns if this type is a wildcard return its upper bound; otherwise, return null.- Returns:
- if this type is a wildcard return its upper bound; otherwise, return null
-
getErased
Returns new type whose Java type is the erasure of this type.- Returns:
- a new type whose Java type is the erasure of this type
-
getComponentType
Returns the array component type fo this type or null if on does not exist.- Returns:
- the array component type of this type or null if one does not exist
-
getQualifiers
Returns the primary qualifiers on this type.- Returns:
- the primary qualifiers on this type
-
equals
-
hashCode
public int hashCode()
-