Class CaptureBinding18
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.TypeVariableBinding
org.aspectj.org.eclipse.jdt.internal.compiler.lookup.CaptureBinding
org.aspectj.org.eclipse.jdt.internal.compiler.lookup.CaptureBinding18
Capture-like type variable introduced during 1.8 type inference.
-
Field Summary
Fields inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.CaptureBinding
captureID, cud, end, lowerBound, sourceType, start, wildcard
Fields inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.TypeVariableBinding
declaringElement, firstBound, genericTypeSignature, rank, superclass, superInterfaces
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, 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
ConstructorDescriptionCaptureBinding18(ReferenceBinding contextType, char[] sourceName, char[] originalName, int start, int end, int captureID, LookupEnvironment environment)
-
Method Summary
Modifier and TypeMethodDescriptionclone(TypeBinding enclosingType)
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{} -> Lp/X; erasure()
findSuperTypeOriginatingFrom(TypeBinding otherType)
Find supertype which originates from a given type, or null if not foundgetMethods(char[] selector)
void
initializeBounds(Scope scope, ParameterizedTypeBinding capturedParameterizedType)
Initialize capture bounds using substituted supertypes e.g. given X>, capture(Xboolean
isCompatibleWith(TypeBinding otherType, Scope captureScope)
Answer true if the receiver type can be assigned to the argument type (right) In addition to improving performance, caching also ensures there is no infinite regression since per nature, the compatibility check is recursive through parameterized type arguments (122775)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
isProperType(boolean admitCapture18)
JLS8 Sect 18.1.1char[]
Answer the receiver's signature.boolean
setUpperBounds(TypeBinding[] upperBounds, ReferenceBinding javaLangObject)
char[]
Perform capture "deconversion" on a given typeMethods inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.CaptureBinding
debugName, downwardsProjection, genericTypeSignature, getDerivedTypesForDeferredInitialization, isCapture, nullAnnotatedReadableName, setTypeAnnotations, signableName, toString, upperBoundForProjection, upwardsProjection, withoutToplevelNullAnnotation
Methods inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.TypeVariableBinding
acceptsNonNullDefault, allUpperBounds, annotatedDebugName, appendNullAnnotation, boundCheck, boundsCount, canBeInstantiated, collectSubstitutes, combineTypeAnnotations, constantPoolName, enterRecursiveFunction, enterRecursiveProjectionFunction, evaluateNullAnnotations, exitRecursiveFunction, exitRecursiveProjectionFunction, genericSignature, hasTypeBit, isErasureBoundTo, isFreeTypeVariable, isHierarchyConnected, isInterchangeableWith, isSubtypeOf, isTypeVariable, kind, mentionsAny, otherUpperBounds, setFirstBound, setSuperClass, setSuperInterfaces, superclass, superInterfaces, unannotated, updateTagBits, upperBound
Methods inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding
applyCloseableClassWhitelists, applyCloseableInterfaceWhitelists, availableFields, availableMethods, binarySearch, binarySearch, canBeSeenBy, canBeSeenBy, canBeSeenBy, computeGenericTypeSignature, computeId, computeId, depth, detectAnnotationCycle, enclosingTypeAt, enumConstantCount, fieldCount, fields, getAccessFlags, getAnnotations, getAnnotationTagBits, getEnclosingInstancesSlotSize, getExactConstructor, getExactMethod, getField, getField, getFileName, getInterfaceAbstractContracts, getMemberType, getMethods, getOuterLocalVariablesSlotSize, getPackage, getSingleAbstractMethod, getTypeVariable, hasEnclosingInstanceContext, hashCode, hasHierarchyCheckStarted, hasIncompatibleSuperType, hasMemberTypes, hasMethodWithNumArgs, hasNullBit, hasRestrictedAccess, implementsInterface, innerCanBeSeenBy, innerCanBeSeenBy, isAbstract, isAnnotationType, isBinaryBinding, isClass, isConsistentIntersection, isDefault, isDeprecated, isEnum, isFinal, isFunctionalInterface, isHierarchyBeingActivelyConnected, isHierarchyBeingConnected, isInterface, isNestmateOf, isNonSealed, isOrEnclosedByPrivateType, isPrivate, isProtected, isPublic, isSealed, isStatic, isStrictfp, isSubTypeOfRTL, isSuperclassOf, isThrowable, isUncheckedException, isUsed, isViewedAsDeprecated, memberTypes, methods, module, outermostEnclosingType, permittedTypes, qualifiedSourceName, readableName, retrieveAnnotationHolder, setAnnotations, setContainerAnnotationType, setHierarchyCheckDone, shortReadableName, signature, sortFields, sortMethods, sourceName, syntheticEnclosingInstanceTypes, tagAsHavingDefectiveContainerType, unResolvedFields
Methods inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.TypeBinding
actualType, capture, closestMatch, collectMissingTypes, containerAnnotationType, dimensions, enclosingMethod, enclosingType, equalsEquals, findSuperTypeOriginatingFrom, genericCast, getErasureCompatibleType, getIntersectingTypes, getTypeAnnotations, hasNullTypeAnnotations, hasTypeAnnotations, isAnonymousType, isArrayType, isBaseType, isBoundParameterizedType, isBoxedPrimitiveType, isBoxingCompatibleWith, isCompatibleWith, isFunctionalType, isGenericType, isHierarchyInconsistent, isIntersectionType, isIntersectionType18, isLocalType, isMemberType, isNestedType, isNumericType, isParameterizedType, isParameterizedTypeWithActualArguments, isParameterizedWithOwnVariables, isPolyType, isPotentiallyCompatibleWith, isPrimitiveOrBoxedPrimitiveType, isPrimitiveType, isProvablyDistinct, isRawType, isRecord, isReifiable, isRepeatableAnnotationType, isTypeArgumentContainedBy, isUnboundWildcard, isUnresolvedType, isWildcard, leafComponentType, needsUncheckedConversion, notEquals, original, prototype, qualifiedPackageName, sIsMoreSpecific, swapUnresolved, syntheticOuterLocalVariables, typeVariables, wellKnownBaseType, wellKnownType
Methods inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.Binding
computeUniqueKey, initializeDeprecatedAnnotationTagBits, isParameter, isTaggedRepeatable, isValid, isValidBinding, isVolatile, problemId, setAnnotations
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Constructor Details
-
CaptureBinding18
public CaptureBinding18(ReferenceBinding contextType, char[] sourceName, char[] originalName, int start, int end, int captureID, LookupEnvironment environment)
-
-
Method Details
-
setUpperBounds
-
initializeBounds
Description copied from class:CaptureBinding
Initialize capture bounds using substituted supertypes e.g. given X>, capture(X) = X , where capture extends X - Overrides:
initializeBounds
in classCaptureBinding
-
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 classCaptureBinding
-
getMethods
- Overrides:
getMethods
in classReferenceBinding
-
erasure
- Overrides:
erasure
in classTypeVariableBinding
-
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 classCaptureBinding
- See Also:
TypeBinding.isEquivalentTo(TypeBinding)
-
isCompatibleWith
Description copied from class:ReferenceBinding
Answer true if the receiver type can be assigned to the argument type (right) In addition to improving performance, caching also ensures there is no infinite regression since per nature, the compatibility check is recursive through parameterized type arguments (122775)- Overrides:
isCompatibleWith
in classReferenceBinding
-
findSuperTypeOriginatingFrom
Description copied from class:TypeBinding
Find supertype which originates from a given type, or null if not found- Overrides:
findSuperTypeOriginatingFrom
in classTypeBinding
-
isProperType
public boolean isProperType(boolean admitCapture18)Description copied from class:TypeBinding
JLS8 Sect 18.1.1- Overrides:
isProperType
in classCaptureBinding
- 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.
-
readableName
public char[] readableName()Description copied from class:ReferenceBinding
Answer the receiver's signature. NOTE: This method should only be used during/after code gen.- Overrides:
readableName
in classCaptureBinding
- See Also:
ReferenceBinding.readableName()
-
shortReadableName
public char[] shortReadableName()- Overrides:
shortReadableName
in classCaptureBinding
- See Also:
ReferenceBinding.shortReadableName()
-
uncapture
Description copied from class:TypeBinding
Perform capture "deconversion" on a given type- Overrides:
uncapture
in classCaptureBinding
-
computeUniqueKey
public char[] computeUniqueKey(boolean isLeaf)Description copied from class:ReferenceBinding
p.X{} -> Lp/X; - Overrides:
computeUniqueKey
in classCaptureBinding
-
-