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, typeFields inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding
compoundName, fPackage, LUB_GENERIC, modifiers, samProblemBinding, singleAbstractMethod, sourceNameFields inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.TypeBinding
BOOLEAN, BYTE, CHAR, DOUBLE, extendedTagBits, FLOAT, id, INT, LONG, NULL, NUMERIC_TYPES, SHORT, tagBits, TYPE_USE_BINDING, typeAnnotations, VOIDFields 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_PERMITTED_TYPES, 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
ConstructorsConstructorDescriptionRawTypeBinding(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 ofnullorReferenceBinding.samProblemBinding, if the receiver is not a functional interface as defined in JLS 9.8.protected voidbooleanisEquivalentTo(TypeBinding otherType) Returns true if a type is identical to another one, or for generic types, true if compared to its raw type.booleanReturns true if the type is parameterized, e.g.booleanisProperType(boolean admitCapture18) JLS8 Sect 18.1.1booleanisProvablyDistinct(TypeBinding otherType) Returns true if a type is provably distinct from another one,booleanisSubtypeOf(TypeBinding right, boolean simulatingBugJDK8026527) intkind()booleanmentionsAny(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, updateTagBitsMethods inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding
acceptsNonNullDefault, appendNullAnnotation, applyCloseableClassWhitelists, applyCloseableInterfaceWhitelists, applyCloseableWhitelists, availableFields, availableMethods, binarySearch, binarySearch, canBeSeenBy, canBeSeenBy, canBeSeenBy, computeGenericTypeSignature, computeId, depth, detectAnnotationCycle, detectWrapperResource, enclosingTypeAt, enumConstantCount, getAccessFlags, getAllEnumerableAvatars, getFileName, getMemberType, getMethods, getPackage, getRecordComponentAccessor, getTypeVariable, hasEnclosingInstanceContext, hashCode, hasHierarchyCheckStarted, hasIncompatibleSuperType, hasNullBit, hasRestrictedAccess, implementsInterface, innerCanBeSeenBy, innerCanBeSeenBy, isAbstract, isAnnotationType, isBinaryBinding, isClass, isCompatibleWith, isConsistentIntersection, isDefault, isDeprecated, isDisjointFrom, isEnum, isFieldInitializationFinished, isFinal, isFunctionalInterface, isHierarchyBeingActivelyConnected, isHierarchyBeingConnected, isImplicitType, isInterface, isNestmateOf, isNonSealed, isOrEnclosedByPrivateType, isPrivate, isProtected, isPublic, isSealed, isStatic, isStrictfp, isSubTypeOfRTL, isSuperclassOf, isThrowable, isUncheckedException, isUsed, isViewedAsDeprecated, module, outermostEnclosingType, retrieveAnnotationHolder, setAnnotations, setContainerAnnotationType, setHierarchyCheckDone, sortFields, sortMethods, tagAsHavingDefectiveContainerTypeMethods 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, isRecordWithComponents, isReifiable, isRepeatableAnnotationType, isTypeArgumentContainedBy, isTypeVariable, isUnboundWildcard, isUnresolvedType, isWildcard, leafComponentType, needsUncheckedConversion, notEquals, original, prototype, setTypeAnnotations, signableName, sIsMoreSpecific, syntheticTypeVariablesMentioned, unboxedType, upwardsProjection, wellKnownBaseType, wellKnownTypeMethods 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:ReferenceBindingp.X<T extends Y & I, U extends Y> -> Lp/X<TT;TU;>;- Overrides:
computeUniqueKeyin classParameterizedTypeBinding
-
clone
Description copied from class:TypeBindingVirtual 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:
clonein classParameterizedTypeBinding
-
withoutToplevelNullAnnotation
Description copied from class:TypeBindingReturn this type minus its toplevel null annotations. Any annotations on type arguments or bounds are retained.- Overrides:
withoutToplevelNullAnnotationin classParameterizedTypeBinding
-
createParameterizedMethod
- Overrides:
createParameterizedMethodin classParameterizedTypeBinding- See Also:
-
isParameterizedType
public boolean isParameterizedType()Description copied from class:TypeBindingReturns 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:
isParameterizedTypein classParameterizedTypeBinding
-
kind
public int kind()- Overrides:
kindin classParameterizedTypeBinding
-
debugName
- Overrides:
debugNamein classParameterizedTypeBinding- See Also:
-
annotatedDebugName
- Overrides:
annotatedDebugNamein classParameterizedTypeBinding
-
genericTypeSignature
public char[] genericTypeSignature()Ltype<param1 ... paramN>; LY<TT;>;- Overrides:
genericTypeSignaturein classParameterizedTypeBinding
-
isEquivalentTo
Description copied from class:TypeBindingReturns true if a type is identical to another one, or for generic types, true if compared to its raw type.- Overrides:
isEquivalentToin classParameterizedTypeBinding
-
isProvablyDistinct
Description copied from class:TypeBindingReturns true if a type is provably distinct from another one,- Overrides:
isProvablyDistinctin classTypeBinding
-
isSubtypeOf
- Overrides:
isSubtypeOfin classReferenceBinding
-
isProperType
public boolean isProperType(boolean admitCapture18) Description copied from class:TypeBindingJLS8 Sect 18.1.1- Overrides:
isProperTypein classParameterizedTypeBinding- Parameters:
admitCapture18- request ifCaptureBinding18shuld 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:
initializeArgumentsin classParameterizedTypeBinding
-
capture
Description copied from class:ParameterizedTypeBindingPerform capture conversion for a parameterized type with wildcard arguments- Overrides:
capturein classParameterizedTypeBinding- See Also:
-
uncapture
Description copied from class:ParameterizedTypeBindingPerform capture deconversion for a parameterized type with captured wildcard arguments- Overrides:
uncapturein classParameterizedTypeBinding- See Also:
-
getSingleAbstractMethod
Description copied from class:TypeBindingReturn the single abstract method of a functional interface, or one ofnullorReferenceBinding.samProblemBinding, if the receiver is not a functional interface as defined in JLS 9.8. In particularnullis answered if the receiver is not a reference type, or is a problem type.- Overrides:
getSingleAbstractMethodin 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
nullorReferenceBinding.samProblemBinding, if the receiver is not a functional interface.
-
mentionsAny
Description copied from class:TypeBindingDoes this type mention any of the given type parameters, except the one at position 'idx'?- Overrides:
mentionsAnyin classParameterizedTypeBinding
-
readableName
public char[] readableName(boolean showGenerics) - Overrides:
readableNamein classParameterizedTypeBinding- See Also:
-
shortReadableName
public char[] shortReadableName(boolean showGenerics) - Overrides:
shortReadableNamein classParameterizedTypeBinding- See Also:
-
upwardsProjection
Description copied from class:ReferenceBindingPerform an upwards type projection as per JLS 4.10.5- Overrides:
upwardsProjectionin 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:ReferenceBindingPerform a downwards type projection as per JLS 4.10.5- Overrides:
downwardsProjectionin 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:
enclosingTypein classParameterizedTypeBinding- See Also:
-