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
FieldsFields 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, 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_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
ConstructorsConstructorDescriptionArrayBinding(TypeBinding type, int dimensions, LookupEnvironment environment) -
Method Summary
Modifier and TypeMethodDescriptionbooleanUsed 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 typesvoidcollectSubstitutes(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.intdownwardsProjection(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)inthashCode()static booleanisArrayClone(TypeBinding receiverType, MethodBinding binding) booleanisCompatibleWith(TypeBinding otherType, Scope captureScope) booleanisProperType(boolean admitCapture18) JLS8 Sect 18.1.1booleanisSubtypeOf(TypeBinding otherType, 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[]nullAnnotatedReadableName(CompilerOptions options, boolean shortNames) Answer a readable name (for error reporting) that includes nullness type annotations.intchar[]Answer the source name for the type.char[]voidsetTypeAnnotations(AnnotationBinding[] annotations, boolean evalNullAnnotations) char[]char[]voidswapUnresolved(UnresolvedReferenceBinding unresolvedType, ReferenceBinding resolvedType, LookupEnvironment env) toString()Return this type minus its type annotationsPerform capture "deconversion" on a given typelongRefresh 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, components, 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, isNonDenotable, isNumericType, isParameterizedType, isParameterizedTypeWithActualArguments, isParameterizedWithOwnVariables, isPolyType, isPotentiallyCompatibleWith, isPrimitiveOrBoxedPrimitiveType, isPrimitiveType, isProvablyDistinct, isRawType, isReadyForAnnotations, isRecord, isReifiable, isRepeatableAnnotationType, isStatic, isThrowable, isTypeArgumentContainedBy, isTypeVariable, isUnboundWildcard, isUncheckedException, isUnresolvedType, isWildcard, needsUncheckedConversion, notEquals, original, permittedTypes, prototype, qualifiedPackageName, signableName, signature, sIsMoreSpecific, superclass, superInterfaces, syntheticOuterLocalVariables, syntheticTypeVariablesMentioned, typeVariables, wellKnownBaseType, wellKnownTypeMethods inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.Binding
computeUniqueKey, getAnnotations, getAnnotationTagBits, initializeDeprecatedAnnotationTagBits, isAnnotationType, isParameter, isPatternVariable, 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:TypeBindingIn 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:
closestMatchin classTypeBinding
-
collectMissingTypes
Description copied from class:TypeBindingIterate through the type components to collect instances of leaf missing types- Overrides:
collectMissingTypesin classTypeBinding- Returns:
- missing types
- See Also:
-
collectSubstitutes
public void collectSubstitutes(Scope scope, TypeBinding actualType, InferenceContext inferenceContext, int constraint) Description copied from class:TypeBindingCollect the substitutes into a map for certain type variables inside the receiver type e.g.Collection<T>.findSubstitute(T, Collection<List<X>>): T --> List<X> 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:
collectSubstitutesin classTypeBinding
-
mentionsAny
Description copied from class:TypeBindingDoes this type mention any of the given type parameters, except the one at position 'idx'?- Overrides:
mentionsAnyin classTypeBinding
-
computeUniqueKey
public char[] computeUniqueKey(boolean isLeaf) - Overrides:
computeUniqueKeyin classBinding
-
constantPoolName
public char[] constantPoolName()Description copied from class:TypeBindingAnswer the receiver's constant pool name. NOTE: This method should only be used during/after code gen. e.g. 'java/lang/Object'- Specified by:
constantPoolNamein classTypeBinding
-
debugName
- Overrides:
debugNamein classTypeBinding
-
annotatedDebugName
- Overrides:
annotatedDebugNamein classTypeBinding
-
dimensions
public int dimensions()- Overrides:
dimensionsin classTypeBinding
-
elementsType
-
erasure
- Overrides:
erasurein classTypeBinding- See Also:
-
upwardsProjection
Description copied from class:TypeBindingPerform an upwards type projection as per JLS 4.10.5- Overrides:
upwardsProjectionin classTypeBinding- 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:TypeBindingPerform a downwards type projection as per JLS 4.10.5- Overrides:
downwardsProjectionin classTypeBinding- 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
-
environment
-
genericTypeSignature
public char[] genericTypeSignature()Description copied from class:TypeBindingAnswer the receiver classfile signature. Arrays and base types do not distinguish between signature() and constantPoolName(). NOTE: This method should only be used during/after code gen.- Overrides:
genericTypeSignaturein classTypeBinding
-
getPackage
- Specified by:
getPackagein classTypeBinding
-
hashCode
-
isCompatibleWith
- Specified by:
isCompatibleWithin classTypeBinding
-
isSubtypeOf
- Overrides:
isSubtypeOfin classTypeBinding
-
isProperType
public boolean isProperType(boolean admitCapture18) Description copied from class:TypeBindingJLS8 Sect 18.1.1- Overrides:
isProperTypein classTypeBinding- 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.
-
kind
public int kind()- Overrides:
kindin classTypeBinding
-
leafComponentType
- Overrides:
leafComponentTypein classTypeBinding
-
nullAnnotatedReadableName
Description copied from class:TypeBindingAnswer a readable name (for error reporting) that includes nullness type annotations.- Overrides:
nullAnnotatedReadableNamein classTypeBinding
-
problemId
-
qualifiedSourceName
public char[] qualifiedSourceName()Description copied from class:TypeBindingAnswer 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 insideM & A: "A.M.N".- Specified by:
qualifiedSourceNamein classTypeBinding
-
readableName
public char[] readableName()- Specified by:
readableNamein classBinding
-
setTypeAnnotations
- Overrides:
setTypeAnnotationsin classTypeBinding
-
shortReadableName
public char[] shortReadableName()- Overrides:
shortReadableNamein classBinding
-
sourceName
public char[] sourceName()- Specified by:
sourceNamein classTypeBinding
-
swapUnresolved
public void swapUnresolved(UnresolvedReferenceBinding unresolvedType, ReferenceBinding resolvedType, LookupEnvironment env) - Overrides:
swapUnresolvedin classTypeBinding
-
toString
-
unannotated
Description copied from class:TypeBindingReturn this type minus its type annotations- Overrides:
unannotatedin classTypeBinding
-
withoutToplevelNullAnnotation
Description copied from class:TypeBindingReturn this type minus its toplevel null annotations. Any annotations on type arguments or bounds are retained.- Overrides:
withoutToplevelNullAnnotationin classTypeBinding
-
uncapture
Description copied from class:TypeBindingPerform capture "deconversion" on a given type- Overrides:
uncapturein classTypeBinding
-
acceptsNonNullDefault
public boolean acceptsNonNullDefault()Description copied from class:TypeBindingUsed to implement this sentence from o.e.j.annotation.DefaultLocation: "Wildcards and the use of type variables are always excluded from NonNullByDefault."- Overrides:
acceptsNonNullDefaultin classTypeBinding
-
updateTagBits
public long updateTagBits()Description copied from class:TypeBindingRefresh some tagBits from details into the main type. Currently handled: TagBits.HasNullTypeAnnotation- Overrides:
updateTagBitsin classTypeBinding
-
getCloneMethod
The type of x.clone() is substituted from 'Object' into the type of the receiver array (non-null) -
isArrayClone
-