Class RawTypeBinding
java.lang.Object
org.aspectj.org.eclipse.jdt.internal.compiler.lookup.Binding
org.aspectj.org.eclipse.jdt.internal.compiler.lookup.TypeBinding
org.aspectj.org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding
org.aspectj.org.eclipse.jdt.internal.compiler.lookup.ParameterizedTypeBinding
org.aspectj.org.eclipse.jdt.internal.compiler.lookup.RawTypeBinding
- All Implemented Interfaces:
Substitution
Denote a raw type, i.e. a generic type referenced without any type arguments.
e.g.
X<T extends Exception>
can be used a raw type 'X', in which case it
will behave as X<Exception>
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.aspectj.org.eclipse.jdt.internal.compiler.lookup.Substitution
Substitution.NullSubstitution
-
Field Summary
Fields inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.ParameterizedTypeBinding
arguments, components, enclosingType, environment, fields, genericTypeSignature, memberTypes, methods, superclass, superInterfaces, type
Fields inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding
compoundName, fPackage, LUB_GENERIC, modifiers, samProblemBinding, singleAbstractMethod, sourceName
Fields inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.TypeBinding
BOOLEAN, BYTE, CHAR, DOUBLE, extendedTagBits, FLOAT, id, INT, LONG, NULL, SHORT, tagBits, TYPE_USE_BINDING, typeAnnotations, VOID
Fields inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.Binding
ANY_EXCEPTION, ARRAY_TYPE, BASE_TYPE, DefaultLocationArrayContents, DefaultLocationField, DefaultLocationParameter, DefaultLocationReturnType, DefaultLocationsForTrueValue, DefaultLocationTypeArgument, DefaultLocationTypeBound, DefaultLocationTypeParameter, FIELD, GENERIC_TYPE, IMPORT, INTERSECTION_TYPE, INTERSECTION_TYPE18, LOCAL, METHOD, MODULE, NO_ANNOTATIONS, NO_COMPONENTS, NO_ELEMENT_VALUE_PAIRS, NO_EXCEPTIONS, NO_FIELDS, NO_MEMBER_TYPES, NO_METHODS, NO_MODULES, NO_NULL_DEFAULT, NO_PACKAGES, NO_PARAMETER_NAMES, NO_PARAMETERS, NO_PERMITTEDTYPES, NO_PLAIN_PACKAGES, NO_REFERENCE_TYPES, NO_SUPERINTERFACES, NO_TYPE_VARIABLES, NO_TYPES, NULL_UNSPECIFIED_BY_DEFAULT, NullnessDefaultMASK, PACKAGE, PARAMETERIZED_TYPE, PATTERN, POLY_TYPE, RAW_TYPE, RECORD_COMPONENT, TYPE, TYPE_PARAMETER, TYPE_USE, UNINITIALIZED_COMPONENTS, UNINITIALIZED_FIELDS, UNINITIALIZED_METHODS, UNINITIALIZED_REFERENCE_TYPES, VARIABLE, WILDCARD_TYPE
-
Constructor Summary
ConstructorDescriptionRawTypeBinding
(ReferenceBinding type, ReferenceBinding enclosingType, LookupEnvironment environment) Raw type arguments are erasure of respective parameter bounds. -
Method Summary
Modifier and TypeMethodDescriptionPerform capture conversion for a parameterized type with wildcard argumentsclone
(TypeBinding outerType) Virtual copy constructor: a copy is made of the receiver's entire instance state and then suitably parameterized by the arguments to the clone operation as seen fit by each type.char[]
computeUniqueKey
(boolean isLeaf) p.X<T extends Y & I, U extends Y> -> Lp/X<TT;TU;>;
createParameterizedMethod
(MethodBinding originalMethod) downwardsProjection
(Scope scope, TypeBinding[] mentionedTypeVariables) Perform a downwards type projection as per JLS 4.10.5char[]
Ltype<param1 ... paramN>; LY<TT;>;
getSingleAbstractMethod
(Scope scope, boolean replaceWildcards) Return the single abstract method of a functional interface, or one ofnull
orReferenceBinding.samProblemBinding
, if the receiver is not a functional interface as defined in JLS 9.8.protected void
boolean
isEquivalentTo
(TypeBinding otherType) Returns true if a type is identical to another one, or for generic types, true if compared to its raw type.boolean
Returns true if the type is parameterized, e.g.boolean
isProperType
(boolean admitCapture18) JLS8 Sect 18.1.1boolean
isProvablyDistinct
(TypeBinding otherType) Returns true if a type is provably distinct from another one,boolean
isSubtypeOf
(TypeBinding right, boolean simulatingBugJDK8026527) int
kind()
boolean
mentionsAny
(TypeBinding[] parameters, int idx) Does this type mention any of the given type parameters, except the one at position 'idx'?char[]
readableName
(boolean showGenerics) char[]
shortReadableName
(boolean showGenerics) Perform capture deconversion for a parameterized type with captured wildcard argumentsupwardsProjection
(Scope scope, TypeBinding[] mentionedTypeVariables) Perform an upwards type projection as per JLS 4.10.5Return this type minus its toplevel null annotations.Methods inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.ParameterizedTypeBinding
actualType, boundCheck, canBeInstantiated, collectMissingTypes, collectSubstitutes, components, computeId, constantPoolName, environment, erasure, fieldCount, fields, genericType, getAnnotations, getAnnotationTagBits, getComponent, getEnclosingInstancesSlotSize, getExactConstructor, getExactMethod, getExactMethodBase, getField, getField, getInterfaceAbstractContracts, getMethods, getMethodsBase, getNonWildcardParameterization, getNonWildcardParameters, getOuterLocalVariablesSlotSize, getRecordComponent, getSingleAbstractMethod, hasMemberTypes, hasMethodWithNumArgs, hasTypeBit, hasValueBasedTypeAnnotation, implementsMethod, isBoundParameterizedType, isHierarchyConnected, isRawSubstitution, isRecord, memberTypes, methods, nullAnnotatedReadableName, permittedTypes, problemId, qualifiedPackageName, qualifiedSourceName, readableName, shortReadableName, signature, sourceName, substitute, superclass, superInterfaces, swapUnresolved, syntheticEnclosingInstanceTypes, syntheticOuterLocalVariables, toString, typeArguments, typeVariables, unannotated, unResolvedComponents, unResolvedFields, updateTagBits
Methods inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding
acceptsNonNullDefault, appendNullAnnotation, applyCloseableClassWhitelists, applyCloseableInterfaceWhitelists, availableFields, availableMethods, binarySearch, binarySearch, canBeSeenBy, canBeSeenBy, canBeSeenBy, computeGenericTypeSignature, computeId, depth, detectAnnotationCycle, detectWrapperResource, enclosingTypeAt, enumConstantCount, getAccessFlags, getFileName, getMemberType, getMethods, getPackage, getRecordComponentAccessor, getTypeVariable, hasEnclosingInstanceContext, hashCode, hasHierarchyCheckStarted, hasIncompatibleSuperType, hasNullBit, hasRestrictedAccess, implementsInterface, innerCanBeSeenBy, innerCanBeSeenBy, isAbstract, isAnnotationType, isBinaryBinding, isClass, isCompatibleWith, isConsistentIntersection, isDefault, isDeprecated, isEnum, isFieldInitializationFinished, isFinal, isFunctionalInterface, isHierarchyBeingActivelyConnected, isHierarchyBeingConnected, isInterface, isNestmateOf, isNonSealed, isOrEnclosedByPrivateType, isPrivate, isProtected, isPublic, isSealed, isStatic, isStrictfp, isSubTypeOfRTL, isSuperclassOf, isThrowable, isUncheckedException, isUsed, isViewedAsDeprecated, module, outermostEnclosingType, retrieveAnnotationHolder, setAnnotations, setContainerAnnotationType, setHierarchyCheckDone, sortFields, sortMethods, tagAsHavingDefectiveContainerType
Methods inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.TypeBinding
closestMatch, containerAnnotationType, dimensions, enclosingMethod, enterRecursiveFunction, equalsEquals, exitRecursiveFunction, findSuperTypeOriginatingFrom, findSuperTypeOriginatingFrom, genericCast, getErasureCompatibleType, getIntersectingTypes, getTypeAnnotations, hasNullTypeAnnotations, hasTypeAnnotations, isAnonymousType, isArrayType, isBaseType, isBoxedPrimitiveType, isBoxingCompatibleWith, isCapture, isCompatibleWith, isFreeTypeVariable, isFunctionalType, isGenericType, isHierarchyInconsistent, isIntersectionType, isIntersectionType18, isLocalType, isMemberType, isNestedType, isNonDenotable, isNumericType, isParameterizedTypeWithActualArguments, isParameterizedWithOwnVariables, isPolyType, isPotentiallyCompatibleWith, isPrimitiveOrBoxedPrimitiveType, isPrimitiveType, isRawType, isReadyForAnnotations, isReifiable, isRepeatableAnnotationType, isTypeArgumentContainedBy, isTypeVariable, isUnboundWildcard, isUnresolvedType, isWildcard, leafComponentType, needsUncheckedConversion, notEquals, original, prototype, setTypeAnnotations, signableName, sIsMoreSpecific, wellKnownBaseType, wellKnownType
Methods inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.Binding
computeUniqueKey, initializeDeprecatedAnnotationTagBits, isParameter, isPatternVariable, isTaggedRepeatable, isValid, isValidBinding, isVolatile, setAnnotations
-
Constructor Details
-
RawTypeBinding
public RawTypeBinding(ReferenceBinding type, ReferenceBinding enclosingType, LookupEnvironment environment) Raw type arguments are erasure of respective parameter bounds. But we may not have resolved these bounds yet if creating raw types while supertype hierarchies are being connected. Therefore, use 'null' instead, and access these in a lazy way later on (when substituting).
-
-
Method Details
-
computeUniqueKey
public char[] computeUniqueKey(boolean isLeaf) Description copied from class:ReferenceBinding
p.X<T extends Y & I, U extends Y> -> Lp/X<TT;TU;>;
- Overrides:
computeUniqueKey
in classParameterizedTypeBinding
-
clone
Description copied from class:TypeBinding
Virtual copy constructor: a copy is made of the receiver's entire instance state and then suitably parameterized by the arguments to the clone operation as seen fit by each type. Parameters may not make sense for every type in the hierarchy, in which case they are silently ignored. A type may choose to retain a copy of the prototype for reference.- Overrides:
clone
in classParameterizedTypeBinding
-
withoutToplevelNullAnnotation
Description copied from class:TypeBinding
Return this type minus its toplevel null annotations. Any annotations on type arguments or bounds are retained.- Overrides:
withoutToplevelNullAnnotation
in classParameterizedTypeBinding
-
createParameterizedMethod
- Overrides:
createParameterizedMethod
in classParameterizedTypeBinding
- See Also:
-
isParameterizedType
public boolean isParameterizedType()Description copied from class:TypeBinding
Returns true if the type is parameterized, e.g.List<String>
. Note that some instances of ParameterizedTypeBinding have no arguments, like for non-generic members of a parameterized type. UseTypeBinding.isParameterizedTypeWithActualArguments()
instead to find out.- Overrides:
isParameterizedType
in classParameterizedTypeBinding
-
kind
public int kind()- Overrides:
kind
in classParameterizedTypeBinding
-
debugName
- Overrides:
debugName
in classParameterizedTypeBinding
- See Also:
-
annotatedDebugName
- Overrides:
annotatedDebugName
in classParameterizedTypeBinding
-
genericTypeSignature
public char[] genericTypeSignature()Ltype<param1 ... paramN>; LY<TT;>;
- Overrides:
genericTypeSignature
in classParameterizedTypeBinding
-
isEquivalentTo
Description copied from class:TypeBinding
Returns true if a type is identical to another one, or for generic types, true if compared to its raw type.- Overrides:
isEquivalentTo
in classParameterizedTypeBinding
-
isProvablyDistinct
Description copied from class:TypeBinding
Returns true if a type is provably distinct from another one,- Overrides:
isProvablyDistinct
in classTypeBinding
-
isSubtypeOf
- Overrides:
isSubtypeOf
in classReferenceBinding
-
isProperType
public boolean isProperType(boolean admitCapture18) Description copied from class:TypeBinding
JLS8 Sect 18.1.1- Overrides:
isProperType
in classParameterizedTypeBinding
- Parameters:
admitCapture18
- request ifCaptureBinding18
shuld be considered as a proper type. If unsure say 'true', only inScope.greaterLowerBound(TypeBinding[], Scope, LookupEnvironment)
CaptureBinding18 has to be excluded to prevent an NPE on a branch that heuristically tries to avoid inconsistent intersections.
-
initializeArguments
protected void initializeArguments()- Overrides:
initializeArguments
in classParameterizedTypeBinding
-
capture
Description copied from class:ParameterizedTypeBinding
Perform capture conversion for a parameterized type with wildcard arguments- Overrides:
capture
in classParameterizedTypeBinding
- See Also:
-
uncapture
Description copied from class:ParameterizedTypeBinding
Perform capture deconversion for a parameterized type with captured wildcard arguments- Overrides:
uncapture
in classParameterizedTypeBinding
- See Also:
-
getSingleAbstractMethod
Description copied from class:TypeBinding
Return the single abstract method of a functional interface, or one ofnull
orReferenceBinding.samProblemBinding
, if the receiver is not a functional interface as defined in JLS 9.8. In particularnull
is answered if the receiver is not a reference type, or is a problem type.- Overrides:
getSingleAbstractMethod
in classParameterizedTypeBinding
- Parameters:
scope
- scopereplaceWildcards
- Should wildcards be replaced following JLS 9.8? Say false for lambdas with explicit argument types which should apply 18.5.3- Returns:
- The single abstract method of a functional interface, or one of
null
orReferenceBinding.samProblemBinding
, if the receiver is not a functional interface.
-
mentionsAny
Description copied from class:TypeBinding
Does this type mention any of the given type parameters, except the one at position 'idx'?- Overrides:
mentionsAny
in classParameterizedTypeBinding
-
readableName
public char[] readableName(boolean showGenerics) - Overrides:
readableName
in classParameterizedTypeBinding
- See Also:
-
shortReadableName
public char[] shortReadableName(boolean showGenerics) - Overrides:
shortReadableName
in classParameterizedTypeBinding
- See Also:
-
upwardsProjection
Description copied from class:ReferenceBinding
Perform an upwards type projection as per JLS 4.10.5- Overrides:
upwardsProjection
in classParameterizedTypeBinding
- Parameters:
scope
- Relevant scope for evaluating type projectionmentionedTypeVariables
- Filter for mentioned type variabled- Returns:
- Upwards type projection of 'this', or null if downwards projection is undefined
-
downwardsProjection
Description copied from class:ReferenceBinding
Perform a downwards type projection as per JLS 4.10.5- Overrides:
downwardsProjection
in classParameterizedTypeBinding
- Parameters:
scope
- Relevant scope for evaluating type projectionmentionedTypeVariables
- Filter for mentioned type variabled- Returns:
- Downwards type projection of 'this', or null if downwards projection is undefined
-
enclosingType
- Overrides:
enclosingType
in classParameterizedTypeBinding
- See Also:
-