Class ArrayBinding
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.ArrayBinding
-
Field Summary
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
ConstructorDescriptionArrayBinding(TypeBinding type, int dimensions, LookupEnvironment environment)
-
Method Summary
Modifier and TypeMethodDescriptionboolean
Used to implement this sentence from o.e.j.annotation.DefaultLocation: "Wildcards and the use of type variables are always excluded from NonNullByDefault."In case of problems, returns the closest match found.collectMissingTypes(List<TypeBinding> missingTypes)
Iterate through the type components to collect instances of leaf missing typesvoid
collectSubstitutes(Scope scope, TypeBinding actualType, InferenceContext inferenceContext, int constraint)
Collect the substitutes into a map for certain type variables inside the receiver type e.g.char[]
computeUniqueKey(boolean isLeaf)
char[]
Answer the receiver's constant pool name.int
downwardsProjection(Scope scope, TypeBinding[] mentionedTypeVariables)
Perform a downwards type projection as per JLS 4.10.5erasure()
char[]
Answer the receiver classfile signature.getCloneMethod(MethodBinding originalMethod)
The type of x.clone() is substituted from 'Object' into the type of the receiver array (non-null)int
hashCode()
static boolean
isArrayClone(TypeBinding receiverType, MethodBinding binding)
boolean
isCompatibleWith(TypeBinding otherType, Scope captureScope)
boolean
isProperType(boolean admitCapture18)
JLS8 Sect 18.1.1boolean
isSubtypeOf(TypeBinding otherType, 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[]
nullAnnotatedReadableName(CompilerOptions options, boolean shortNames)
Answer a readable name (for error reporting) that includes nullness type annotations.int
char[]
Answer the source name for the type.char[]
void
setTypeAnnotations(AnnotationBinding[] annotations, boolean evalNullAnnotations)
char[]
char[]
void
swapUnresolved(UnresolvedReferenceBinding unresolvedType, ReferenceBinding resolvedType, LookupEnvironment env)
toString()
Return this type minus its type annotationsPerform capture "deconversion" on a given typelong
Refresh some tagBits from details into the main type.upwardsProjection(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.TypeBinding
actualType, canBeInstantiated, canBeSeenBy, capture, clone, containerAnnotationType, depth, enclosingMethod, enclosingType, enterRecursiveFunction, equalsEquals, exitRecursiveFunction, findSuperTypeOriginatingFrom, findSuperTypeOriginatingFrom, genericCast, getErasureCompatibleType, getIntersectingTypes, getMethods, getSingleAbstractMethod, getTypeAnnotations, hasNullTypeAnnotations, hasTypeAnnotations, hasTypeBit, hasValueBasedTypeAnnotation, isAnonymousType, isArrayType, isBaseType, isBoundParameterizedType, isBoxedPrimitiveType, isBoxingCompatibleWith, isCapture, isClass, isCompatibleWith, isEnum, isEquivalentTo, isFreeTypeVariable, isFunctionalInterface, isFunctionalType, isGenericType, isHierarchyInconsistent, isInterface, isIntersectionType, isIntersectionType18, isLocalType, isMemberType, isNestedType, isNumericType, isParameterizedType, isParameterizedTypeWithActualArguments, isParameterizedWithOwnVariables, isPolyType, isPotentiallyCompatibleWith, isPrimitiveOrBoxedPrimitiveType, isPrimitiveType, isProvablyDistinct, isRawType, isRecord, isReifiable, isRepeatableAnnotationType, isStatic, isThrowable, isTypeArgumentContainedBy, isTypeVariable, isUnboundWildcard, isUncheckedException, isUnresolvedType, isWildcard, needsUncheckedConversion, notEquals, original, permittedTypes, prototype, qualifiedPackageName, signableName, signature, sIsMoreSpecific, superclass, superInterfaces, syntheticOuterLocalVariables, typeVariables, wellKnownBaseType, wellKnownType
Methods inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.Binding
computeUniqueKey, getAnnotations, getAnnotationTagBits, initializeDeprecatedAnnotationTagBits, isAnnotationType, isParameter, isTaggedRepeatable, isValid, isValidBinding, isVolatile, setAnnotations, setAnnotations
-
Field Details
-
ArrayLength
-
leafComponentType
-
dimensions
public int dimensions -
nullTagBitsPerDimension
public long[] nullTagBitsPerDimension
-
-
Constructor Details
-
ArrayBinding
-
-
Method Details
-
closestMatch
Description copied from class:TypeBinding
In case of problems, returns the closest match found. It may not be perfect match, but the result of a best effort to improve fault-tolerance.- Overrides:
closestMatch
in classTypeBinding
-
collectMissingTypes
Description copied from class:TypeBinding
Iterate through the type components to collect instances of leaf missing types- Overrides:
collectMissingTypes
in classTypeBinding
- Returns:
- missing types
- See Also:
TypeBinding.collectMissingTypes(java.util.List)
-
collectSubstitutes
public void collectSubstitutes(Scope scope, TypeBinding actualType, InferenceContext inferenceContext, int constraint)Description copied from class:TypeBinding
Collect the substitutes into a map for certain type variables inside the receiver type e.g. Collection.findSubstitute(T, Collection - >): T --> List
Constraints: A << F corresponds to: F.collectSubstitutes(..., A, ..., CONSTRAINT_EXTENDS (1)) A = F corresponds to: F.collectSubstitutes(..., A, ..., CONSTRAINT_EQUAL (0)) A >> F corresponds to: F.collectSubstitutes(..., A, ..., CONSTRAINT_SUPER (2)) - Overrides:
collectSubstitutes
in classTypeBinding
-
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 classTypeBinding
-
computeUniqueKey
public char[] computeUniqueKey(boolean isLeaf)- Overrides:
computeUniqueKey
in classBinding
-
constantPoolName
public char[] constantPoolName()Description copied from class:TypeBinding
Answer the receiver's constant pool name. NOTE: This method should only be used during/after code gen. e.g. 'java/lang/Object'- Specified by:
constantPoolName
in classTypeBinding
-
debugName
- Overrides:
debugName
in classTypeBinding
-
annotatedDebugName
- Overrides:
annotatedDebugName
in classTypeBinding
-
dimensions
public int dimensions()- Overrides:
dimensions
in classTypeBinding
-
elementsType
-
erasure
- Overrides:
erasure
in classTypeBinding
- See Also:
TypeBinding.erasure()
-
upwardsProjection
Description copied from class:TypeBinding
Perform an upwards type projection as per JLS 4.10.5- Overrides:
upwardsProjection
in classTypeBinding
- Parameters:
scope
- Relevant scope for evaluating type projectionmentionedTypeVariables
- Filter for mentioned type variabled
-
downwardsProjection
Description copied from class:TypeBinding
Perform a downwards type projection as per JLS 4.10.5- Overrides:
downwardsProjection
in classTypeBinding
- Parameters:
scope
- Relevant scope for evaluating type projectionmentionedTypeVariables
- Filter for mentioned type variabled
-
environment
-
genericTypeSignature
public char[] genericTypeSignature()Description copied from class:TypeBinding
Answer the receiver classfile signature. Arrays & base types do not distinguish between signature() & constantPoolName(). NOTE: This method should only be used during/after code gen.- Overrides:
genericTypeSignature
in classTypeBinding
-
getPackage
- Specified by:
getPackage
in classTypeBinding
-
hashCode
public int hashCode() -
isCompatibleWith
- Specified by:
isCompatibleWith
in classTypeBinding
-
isSubtypeOf
- Overrides:
isSubtypeOf
in classTypeBinding
-
isProperType
public boolean isProperType(boolean admitCapture18)Description copied from class:TypeBinding
JLS8 Sect 18.1.1- Overrides:
isProperType
in classTypeBinding
- 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.
-
kind
public int kind()- Overrides:
kind
in classTypeBinding
-
leafComponentType
- Overrides:
leafComponentType
in classTypeBinding
-
nullAnnotatedReadableName
Description copied from class:TypeBinding
Answer a readable name (for error reporting) that includes nullness type annotations.- Overrides:
nullAnnotatedReadableName
in classTypeBinding
-
problemId
public int problemId() -
qualifiedSourceName
public char[] qualifiedSourceName()Description copied from class:TypeBinding
Answer the source name for the type. In the case of member types, as the qualified name from its top level type. For example, for a member type N defined inside M & A: "A.M.N".- Specified by:
qualifiedSourceName
in classTypeBinding
-
readableName
public char[] readableName()- Specified by:
readableName
in classBinding
-
setTypeAnnotations
- Overrides:
setTypeAnnotations
in classTypeBinding
-
shortReadableName
public char[] shortReadableName()- Overrides:
shortReadableName
in classBinding
-
sourceName
public char[] sourceName()- Specified by:
sourceName
in classTypeBinding
-
swapUnresolved
public void swapUnresolved(UnresolvedReferenceBinding unresolvedType, ReferenceBinding resolvedType, LookupEnvironment env)- Overrides:
swapUnresolved
in classTypeBinding
-
toString
-
unannotated
Description copied from class:TypeBinding
Return this type minus its type annotations- Overrides:
unannotated
in classTypeBinding
-
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 classTypeBinding
-
uncapture
Description copied from class:TypeBinding
Perform capture "deconversion" on a given type- Overrides:
uncapture
in classTypeBinding
-
acceptsNonNullDefault
public boolean acceptsNonNullDefault()Description copied from class:TypeBinding
Used to implement this sentence from o.e.j.annotation.DefaultLocation: "Wildcards and the use of type variables are always excluded from NonNullByDefault."- Overrides:
acceptsNonNullDefault
in classTypeBinding
-
updateTagBits
public long updateTagBits()Description copied from class:TypeBinding
Refresh some tagBits from details into the main type. Currently handled: TagBits.HasNullTypeAnnotation- Overrides:
updateTagBits
in classTypeBinding
-
getCloneMethod
The type of x.clone() is substituted from 'Object' into the type of the receiver array (non-null) -
isArrayClone
-