org.aspectj.org.eclipse.jdt.internal.compiler.lookup
Class CaptureBinding18

java.lang.Object
  extended by org.aspectj.org.eclipse.jdt.internal.compiler.lookup.Binding
      extended by org.aspectj.org.eclipse.jdt.internal.compiler.lookup.TypeBinding
          extended by org.aspectj.org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding
              extended by org.aspectj.org.eclipse.jdt.internal.compiler.lookup.TypeVariableBinding
                  extended by org.aspectj.org.eclipse.jdt.internal.compiler.lookup.CaptureBinding
                      extended by org.aspectj.org.eclipse.jdt.internal.compiler.lookup.CaptureBinding18

public class CaptureBinding18
extends CaptureBinding

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, lowerBound, position, sourceType, 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, 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, DefaultLocationTypeArgument, DefaultLocationTypeBound, DefaultLocationTypeParameter, FIELD, GENERIC_TYPE, IMPORT, INTERSECTION_CAST_TYPE, INTERSECTION_TYPE, LOCAL, METHOD, NO_ANNOTATIONS, NO_ELEMENT_VALUE_PAIRS, NO_EXCEPTIONS, NO_FIELDS, NO_MEMBER_TYPES, NO_METHODS, NO_NULL_DEFAULT, NO_PARAMETER_NAMES, NO_PARAMETERS, NO_REFERENCE_TYPES, NO_SUPERINTERFACES, NO_TYPE_VARIABLES, NO_TYPES, NONNULL_BY_DEFAULT, NULL_UNSPECIFIED_BY_DEFAULT, NullnessDefaultMASK, PACKAGE, PARAMETERIZED_TYPE, POLY_TYPE, RAW_TYPE, TYPE, TYPE_PARAMETER, TYPE_USE, UNINITIALIZED_FIELDS, UNINITIALIZED_METHODS, UNINITIALIZED_REFERENCE_TYPES, VARIABLE, WILDCARD_TYPE
 
Constructor Summary
CaptureBinding18(ReferenceBinding contextType, char[] sourceName, char[] originalName, int position, int captureID, LookupEnvironment environment)
           
 
Method Summary
 TypeBinding clone(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;
 TypeBinding erasure()
           
 TypeBinding findSuperTypeOriginatingFrom(TypeBinding otherType)
          Find supertype which originates from a given type, or null if not found
 char[] genericTypeSignature()
          T::Ljava/util/Map;:Ljava/io/Serializable; T:LY
 MethodBinding[] getMethods(char[] selector)
           
 void initializeBounds(Scope scope, ParameterizedTypeBinding capturedParameterizedType)
          Initialize capture bounds using substituted supertypes e.g.
 boolean 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.1
 char[] readableName()
          Answer the receiver's signature.
 boolean setUpperBounds(TypeBinding[] upperBounds, ReferenceBinding javaLangObject)
           
 char[] shortReadableName()
           
 TypeBinding uncapture(Scope scope)
          Perform capture "deconversion" on a given type
 
Methods inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.CaptureBinding
debugName, isCapture, nullAnnotatedReadableName, toString
 
Methods inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.TypeVariableBinding
acceptsNonNullDefault, annotatedDebugName, boundCheck, boundsCount, canBeInstantiated, collectSubstitutes, combineTypeAnnotations, constantPoolName, enterRecursiveFunction, evaluateNullAnnotations, exitRecursiveFunction, genericSignature, hasTypeBit, isErasureBoundTo, isHierarchyConnected, isInterchangeableWith, isSubtypeOf, isTypeVariable, kind, mentionsAny, otherUpperBounds, setFirstBound, setSuperClass, setSuperInterfaces, setTypeAnnotations, superclass, superInterfaces, unannotated, upperBound
 
Methods inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding
appendNullAnnotation, applyCloseableClassWhitelists, applyCloseableInterfaceWhitelists, availableFields, availableMethods, binarySearch, binarySearch, canBeSeenBy, canBeSeenBy, canBeSeenBy, computeGenericTypeSignature, computeId, depth, detectAnnotationCycle, enclosingTypeAt, enumConstantCount, fieldCount, fields, getAccessFlags, getAnnotations, getAnnotationTagBits, getEnclosingInstancesSlotSize, getExactConstructor, getExactMethod, getField, getField, getFileName, getMemberType, getMethods, getOuterLocalVariablesSlotSize, getPackage, getSingleAbstractMethod, getTypeVariable, hashCode, hasIncompatibleSuperType, hasMemberTypes, hasRestrictedAccess, implementsInterface, innerCanBeSeenBy, innerCanBeSeenBy, isAbstract, isAnnotationType, isBinaryBinding, isClass, isConsistentIntersection, isDefault, isDeprecated, isEnum, isFinal, isFunctionalInterface, isHierarchyBeingActivelyConnected, isHierarchyBeingConnected, isInterface, isOrEnclosedByPrivateType, isPrivate, isProtected, isPublic, isStatic, isStrictfp, isSubTypeOfRTL, isSuperclassOf, isThrowable, isUncheckedException, isUsed, isViewedAsDeprecated, memberTypes, methods, outermostEnclosingType, qualifiedSourceName, retrieveAnnotationHolder, setAnnotations, setContainerAnnotationType, 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, enclosingType, equalsEquals, findSuperTypeOriginatingFrom, genericCast, getErasureCompatibleType, getIntersectingTypes, getTypeAnnotations, hasNullTypeAnnotations, hasTypeAnnotations, isAnonymousType, isArrayType, isBaseType, isBoundParameterizedType, isBoxedPrimitiveType, isCompatibleWith, isGenericType, isHierarchyInconsistent, isIntersectionCastType, isIntersectionType, isLocalType, isMemberType, isNestedType, isNumericType, isParameterizedType, isParameterizedTypeWithActualArguments, isParameterizedWithOwnVariables, isPrimitiveOrBoxedPrimitiveType, isPrimitiveType, isProvablyDistinct, isRawType, isReifiable, isRepeatableAnnotationType, isTypeArgumentContainedBy, isUnboundWildcard, isUnresolvedType, isWildcard, leafComponentType, needsUncheckedConversion, notEquals, original, prototype, qualifiedPackageName, sIsMoreSpecific, swapUnresolved, syntheticOuterLocalVariables, typeVariables, wellKnownType
 
Methods inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.Binding
computeUniqueKey, initializeDeprecatedAnnotationTagBits, isParameter, isTaggedRepeatable, isValidBinding, isVolatile, problemId, setAnnotations
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

CaptureBinding18

public CaptureBinding18(ReferenceBinding contextType,
                        char[] sourceName,
                        char[] originalName,
                        int position,
                        int captureID,
                        LookupEnvironment environment)
Method Detail

setUpperBounds

public boolean setUpperBounds(TypeBinding[] upperBounds,
                              ReferenceBinding javaLangObject)

initializeBounds

public void initializeBounds(Scope scope,
                             ParameterizedTypeBinding capturedParameterizedType)
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 class CaptureBinding

clone

public TypeBinding clone(TypeBinding enclosingType)
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 class CaptureBinding

getMethods

public MethodBinding[] getMethods(char[] selector)
Overrides:
getMethods in class ReferenceBinding

erasure

public TypeBinding erasure()
Overrides:
erasure in class TypeVariableBinding

isEquivalentTo

public boolean isEquivalentTo(TypeBinding otherType)
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 class CaptureBinding
See Also:
TypeBinding.isEquivalentTo(TypeBinding)

isCompatibleWith

public boolean isCompatibleWith(TypeBinding otherType,
                                Scope captureScope)
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 class ReferenceBinding

findSuperTypeOriginatingFrom

public TypeBinding findSuperTypeOriginatingFrom(TypeBinding otherType)
Description copied from class: TypeBinding
Find supertype which originates from a given type, or null if not found

Overrides:
findSuperTypeOriginatingFrom in class TypeBinding

isProperType

public boolean isProperType(boolean admitCapture18)
Description copied from class: TypeBinding
JLS8 Sect 18.1.1

Overrides:
isProperType in class TypeVariableBinding
Parameters:
admitCapture18 - request if CaptureBinding18 shuld be considered as a proper type. If unsure say 'true', only in Scope.greaterLowerBound(TypeBinding[], Scope, LookupEnvironment) CaptureBinding18 has to be excluded to prevent an NPE on a branch that heuristically tries to avoid inconsistent intersections.

genericTypeSignature

public char[] genericTypeSignature()
Description copied from class: TypeVariableBinding
T::Ljava/util/Map;:Ljava/io/Serializable; T:LY

Overrides:
genericTypeSignature in class CaptureBinding

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 class CaptureBinding
See Also:
ReferenceBinding.readableName()

shortReadableName

public char[] shortReadableName()
Overrides:
shortReadableName in class CaptureBinding
See Also:
ReferenceBinding.shortReadableName()

uncapture

public TypeBinding uncapture(Scope scope)
Description copied from class: TypeBinding
Perform capture "deconversion" on a given type

Overrides:
uncapture in class CaptureBinding

computeUniqueKey

public char[] computeUniqueKey(boolean isLeaf)
Description copied from class: ReferenceBinding
p.X {} -> Lp/X;

Overrides:
computeUniqueKey in class CaptureBinding