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

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.IntersectionCastTypeBinding

public class IntersectionCastTypeBinding
extends ReferenceBinding


Field Summary
 ReferenceBinding[] intersectingTypes
           
 
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
IntersectionCastTypeBinding(ReferenceBinding[] intersectingTypes, LookupEnvironment environment)
           
 
Method Summary
 boolean canBeInstantiated()
          Answer true if the receiver can be instantiated
 boolean canBeSeenBy(PackageBinding invocationPackage)
          Answer true if the receiver is visible to the invocationPackage.
 boolean canBeSeenBy(ReferenceBinding receiverType, ReferenceBinding invocationType)
          Answer true if the receiver is visible to the receiverType and the invocationType.
 boolean canBeSeenBy(Scope scope)
          Answer true if the receiver is visible to the type provided by the scope.
 char[] constantPoolName()
          Answer the receiver's constant pool name.
 java.lang.String debugName()
           
 ReferenceBinding[] getIntersectingTypes()
           
 PackageBinding getPackage()
           
 TypeBinding getSAMType(Scope scope)
           
 MethodBinding getSingleAbstractMethod(Scope scope, boolean replaceWildcards)
          Return the single abstract method of a functional interface, or null, if the receiver is not a functional interface as defined in JLS 9.8.
 boolean hasTypeBit(int bit)
          Answer an additional bit characterizing this type, like TypeIds.BitAutoCloseable.
 boolean isBoxedPrimitiveType()
           
 boolean isCompatibleWith(TypeBinding right, Scope scope)
          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 isIntersectionCastType()
           
 boolean isSubtypeOf(TypeBinding other)
           
 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[] qualifiedSourceName()
          Answer the source name for the type.
 char[] readableName()
          Answer the receiver's signature.
 char[] shortReadableName()
           
 char[] sourceName()
           
 ReferenceBinding superclass()
           
 ReferenceBinding[] superInterfaces()
           
 java.lang.String toString()
           
 
Methods inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding
acceptsNonNullDefault, appendNullAnnotation, applyCloseableClassWhitelists, applyCloseableInterfaceWhitelists, availableFields, availableMethods, binarySearch, binarySearch, computeGenericTypeSignature, computeId, computeUniqueKey, depth, detectAnnotationCycle, enclosingTypeAt, enumConstantCount, fieldCount, fields, getAccessFlags, getAnnotations, getAnnotationTagBits, getEnclosingInstancesSlotSize, getExactConstructor, getExactMethod, getField, getField, getFileName, getMemberType, getMethods, getMethods, getOuterLocalVariablesSlotSize, getTypeVariable, hashCode, hasIncompatibleSuperType, hasMemberTypes, hasRestrictedAccess, implementsInterface, innerCanBeSeenBy, innerCanBeSeenBy, isAbstract, isAnnotationType, isBinaryBinding, isClass, isConsistentIntersection, isDefault, isDeprecated, isEnum, isFinal, isFunctionalInterface, isHierarchyBeingActivelyConnected, isHierarchyBeingConnected, isHierarchyConnected, isInterface, isOrEnclosedByPrivateType, isPrivate, isProperType, isProtected, isPublic, isStatic, isStrictfp, isSubTypeOfRTL, isSuperclassOf, isThrowable, isUncheckedException, isUsed, isViewedAsDeprecated, memberTypes, methods, nullAnnotatedReadableName, outermostEnclosingType, retrieveAnnotationHolder, setAnnotations, setContainerAnnotationType, signature, sortFields, sortMethods, syntheticEnclosingInstanceTypes, tagAsHavingDefectiveContainerType, unResolvedFields
 
Methods inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.TypeBinding
actualType, annotatedDebugName, capture, clone, closestMatch, collectMissingTypes, collectSubstitutes, containerAnnotationType, dimensions, enclosingType, enterRecursiveFunction, equalsEquals, erasure, exitRecursiveFunction, findSuperTypeOriginatingFrom, findSuperTypeOriginatingFrom, genericCast, genericTypeSignature, getErasureCompatibleType, getTypeAnnotations, hasNullTypeAnnotations, hasTypeAnnotations, isAnonymousType, isArrayType, isBaseType, isBoundParameterizedType, isCapture, isCompatibleWith, isEquivalentTo, isGenericType, isHierarchyInconsistent, isIntersectionType, isLocalType, isMemberType, isNestedType, isNumericType, isParameterizedType, isParameterizedTypeWithActualArguments, isParameterizedWithOwnVariables, isPrimitiveOrBoxedPrimitiveType, isPrimitiveType, isProvablyDistinct, isRawType, isReifiable, isRepeatableAnnotationType, isTypeArgumentContainedBy, isTypeVariable, isUnboundWildcard, isUnresolvedType, isWildcard, leafComponentType, needsUncheckedConversion, notEquals, original, prototype, qualifiedPackageName, setTypeAnnotations, sIsMoreSpecific, swapUnresolved, syntheticOuterLocalVariables, typeVariables, unannotated, uncapture, 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
 

Field Detail

intersectingTypes

public ReferenceBinding[] intersectingTypes
Constructor Detail

IntersectionCastTypeBinding

public IntersectionCastTypeBinding(ReferenceBinding[] intersectingTypes,
                                   LookupEnvironment environment)
Method Detail

getSingleAbstractMethod

public MethodBinding getSingleAbstractMethod(Scope scope,
                                             boolean replaceWildcards)
Description copied from class: TypeBinding
Return the single abstract method of a functional interface, or null, if the receiver is not a functional interface as defined in JLS 9.8.

Overrides:
getSingleAbstractMethod in class ReferenceBinding
Parameters:
scope - scope
replaceWildcards - 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 null, if the receiver is not a functional interface.

hasTypeBit

public boolean hasTypeBit(int bit)
Description copied from class: TypeBinding
Answer an additional bit characterizing this type, like TypeIds.BitAutoCloseable.

Overrides:
hasTypeBit in class TypeBinding

canBeInstantiated

public boolean canBeInstantiated()
Description copied from class: ReferenceBinding
Answer true if the receiver can be instantiated

Overrides:
canBeInstantiated in class ReferenceBinding

canBeSeenBy

public boolean canBeSeenBy(PackageBinding invocationPackage)
Description copied from class: ReferenceBinding
Answer true if the receiver is visible to the invocationPackage.

Overrides:
canBeSeenBy in class ReferenceBinding

canBeSeenBy

public boolean canBeSeenBy(Scope scope)
Description copied from class: ReferenceBinding
Answer true if the receiver is visible to the type provided by the scope.

Overrides:
canBeSeenBy in class ReferenceBinding

canBeSeenBy

public boolean canBeSeenBy(ReferenceBinding receiverType,
                           ReferenceBinding invocationType)
Description copied from class: ReferenceBinding
Answer true if the receiver is visible to the receiverType and the invocationType.

Overrides:
canBeSeenBy in class ReferenceBinding

constantPoolName

public char[] constantPoolName()
Description copied from class: ReferenceBinding
Answer the receiver's constant pool name. NOTE: This method should only be used during/after code gen.

Overrides:
constantPoolName in class ReferenceBinding

getPackage

public PackageBinding getPackage()
Overrides:
getPackage in class ReferenceBinding

getIntersectingTypes

public ReferenceBinding[] getIntersectingTypes()
Overrides:
getIntersectingTypes in class TypeBinding

superclass

public ReferenceBinding superclass()
Overrides:
superclass in class ReferenceBinding

superInterfaces

public ReferenceBinding[] superInterfaces()
Overrides:
superInterfaces in class ReferenceBinding

isBoxedPrimitiveType

public boolean isBoxedPrimitiveType()
Overrides:
isBoxedPrimitiveType in class TypeBinding

isCompatibleWith

public boolean isCompatibleWith(TypeBinding right,
                                Scope scope)
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

isSubtypeOf

public boolean isSubtypeOf(TypeBinding other)
Overrides:
isSubtypeOf in class ReferenceBinding

qualifiedSourceName

public char[] qualifiedSourceName()
Description copied from class: ReferenceBinding
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".

Overrides:
qualifiedSourceName in class ReferenceBinding

sourceName

public char[] sourceName()
Overrides:
sourceName in class ReferenceBinding

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 ReferenceBinding

shortReadableName

public char[] shortReadableName()
Overrides:
shortReadableName in class ReferenceBinding

isIntersectionCastType

public boolean isIntersectionCastType()
Overrides:
isIntersectionCastType in class TypeBinding

kind

public int kind()
Overrides:
kind in class TypeBinding

debugName

public java.lang.String debugName()
Overrides:
debugName in class ReferenceBinding

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

getSAMType

public TypeBinding getSAMType(Scope scope)

mentionsAny

public boolean mentionsAny(TypeBinding[] parameters,
                           int idx)
Description copied from class: TypeBinding
Does this type mention any of the given type parameters, except the one at position 'idx'?

Overrides:
mentionsAny in class TypeBinding