Class IntersectionTypeBinding18
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.IntersectionTypeBinding18
Abstraction used for intersection casts in Java 8 + and inferred types:
- type inference at 1.8+
- lub at 1.8+
- projections for 'var' at 10+
-
Field Summary
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, 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
ConstructorDescriptionIntersectionTypeBinding18(ReferenceBinding[] intersectingTypes, LookupEnvironment environment)
-
Method Summary
Modifier and TypeMethodDescriptionboolean
Answer true if the receiver can be instantiatedboolean
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.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[]
Answer the receiver's constant pool name.downwardsProjection(Scope scope, TypeBinding[] mentionedTypeVariables)
Perform a downwards type projection as per JLS 4.10.5erasure()
protected MethodBinding[]
getInterfaceAbstractContracts(Scope scope, boolean replaceWildcards, boolean filterDefaultMethods)
getSAMType(Scope scope)
boolean
hasTypeBit(int bit)
Answer an additional bit characterizing this type, likeTypeIds.BitAutoCloseable
.boolean
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
boolean
isSubtypeOf(TypeBinding other, 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[]
Answer the source name for the type.char[]
Answer the receiver's signature.char[]
char[]
toString()
long
Refresh some tagBits from details into the main type.upwardsProjection(Scope scope, TypeBinding[] mentionedTypeVariables)
Perform an upwards type projection as per JLS 4.10.5Methods inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding
acceptsNonNullDefault, appendNullAnnotation, applyCloseableClassWhitelists, applyCloseableInterfaceWhitelists, availableFields, availableMethods, binarySearch, binarySearch, components, computeGenericTypeSignature, computeId, computeId, computeUniqueKey, depth, detectAnnotationCycle, enclosingTypeAt, enumConstantCount, fieldCount, fields, getAccessFlags, getAnnotations, getAnnotationTagBits, getEnclosingInstancesSlotSize, getExactConstructor, getExactMethod, getField, getField, getFileName, getMemberType, getMethods, getMethods, getOuterLocalVariablesSlotSize, 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, isHierarchyConnected, isInterface, isNestmateOf, isNonSealed, isOrEnclosedByPrivateType, isPrivate, isProperType, isProtected, isPublic, isSealed, isStatic, isStrictfp, isSubTypeOfRTL, isSuperclassOf, isThrowable, isUncheckedException, isUsed, isViewedAsDeprecated, memberTypes, methods, module, nullAnnotatedReadableName, outermostEnclosingType, permittedTypes, readableName, retrieveAnnotationHolder, setAnnotations, setContainerAnnotationType, setHierarchyCheckDone, shortReadableName, signature, sortFields, sortMethods, syntheticEnclosingInstanceTypes, tagAsHavingDefectiveContainerType, unResolvedFields
Methods inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.TypeBinding
actualType, annotatedDebugName, capture, closestMatch, collectMissingTypes, collectSubstitutes, containerAnnotationType, dimensions, enclosingMethod, enclosingType, enterRecursiveFunction, equalsEquals, exitRecursiveFunction, findSuperTypeOriginatingFrom, findSuperTypeOriginatingFrom, genericCast, genericTypeSignature, getErasureCompatibleType, getTypeAnnotations, hasNullTypeAnnotations, hasTypeAnnotations, hasValueBasedTypeAnnotation, isAnonymousType, isArrayType, isBaseType, isBoundParameterizedType, isBoxingCompatibleWith, isCapture, isCompatibleWith, isEquivalentTo, isFreeTypeVariable, isFunctionalType, isGenericType, isHierarchyInconsistent, isIntersectionType, isLocalType, isMemberType, isNestedType, isNumericType, isParameterizedType, isParameterizedTypeWithActualArguments, isParameterizedWithOwnVariables, isPolyType, isPotentiallyCompatibleWith, isPrimitiveOrBoxedPrimitiveType, isPrimitiveType, isProvablyDistinct, isRawType, isRecord, isReifiable, isRepeatableAnnotationType, isTypeArgumentContainedBy, isTypeVariable, isUnboundWildcard, isUnresolvedType, isWildcard, leafComponentType, needsUncheckedConversion, notEquals, original, prototype, qualifiedPackageName, setTypeAnnotations, signableName, sIsMoreSpecific, swapUnresolved, syntheticOuterLocalVariables, typeVariables, unannotated, uncapture, wellKnownBaseType, wellKnownType, withoutToplevelNullAnnotation
Methods inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.Binding
computeUniqueKey, initializeDeprecatedAnnotationTagBits, isParameter, isTaggedRepeatable, isValid, isValidBinding, isVolatile, problemId, setAnnotations
-
Field Details
-
intersectingTypes
-
-
Constructor Details
-
IntersectionTypeBinding18
public IntersectionTypeBinding18(ReferenceBinding[] intersectingTypes, LookupEnvironment environment)
-
-
Method Details
-
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 classTypeBinding
-
getInterfaceAbstractContracts
protected MethodBinding[] getInterfaceAbstractContracts(Scope scope, boolean replaceWildcards, boolean filterDefaultMethods) throws InvalidInputException- Overrides:
getInterfaceAbstractContracts
in classReferenceBinding
- Throws:
InvalidInputException
-
hasTypeBit
public boolean hasTypeBit(int bit)Description copied from class:TypeBinding
Answer an additional bit characterizing this type, likeTypeIds.BitAutoCloseable
.- Overrides:
hasTypeBit
in classTypeBinding
-
canBeInstantiated
public boolean canBeInstantiated()Description copied from class:ReferenceBinding
Answer true if the receiver can be instantiated- Overrides:
canBeInstantiated
in classReferenceBinding
-
canBeSeenBy
Description copied from class:ReferenceBinding
Answer true if the receiver is visible to the invocationPackage.- Overrides:
canBeSeenBy
in classReferenceBinding
-
canBeSeenBy
Description copied from class:ReferenceBinding
Answer true if the receiver is visible to the type provided by the scope.- Overrides:
canBeSeenBy
in classReferenceBinding
-
canBeSeenBy
Description copied from class:ReferenceBinding
Answer true if the receiver is visible to the receiverType and the invocationType.- Overrides:
canBeSeenBy
in classReferenceBinding
-
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 classReferenceBinding
-
getPackage
- Overrides:
getPackage
in classReferenceBinding
-
getIntersectingTypes
- Overrides:
getIntersectingTypes
in classTypeBinding
-
superclass
- Overrides:
superclass
in classReferenceBinding
-
superInterfaces
- Overrides:
superInterfaces
in classReferenceBinding
-
isBoxedPrimitiveType
public boolean isBoxedPrimitiveType()- Overrides:
isBoxedPrimitiveType
in classTypeBinding
-
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
-
isSubtypeOf
- Overrides:
isSubtypeOf
in classReferenceBinding
-
erasure
- Overrides:
erasure
in classTypeBinding
-
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 classReferenceBinding
-
sourceName
public char[] sourceName()- Overrides:
sourceName
in classReferenceBinding
-
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 classReferenceBinding
-
shortReadableName
public char[] shortReadableName()- Overrides:
shortReadableName
in classReferenceBinding
-
isIntersectionType18
public boolean isIntersectionType18()- Overrides:
isIntersectionType18
in classTypeBinding
-
kind
public int kind()- Overrides:
kind
in classTypeBinding
-
debugName
- Overrides:
debugName
in classReferenceBinding
-
toString
-
getSAMType
-
upwardsProjection
Description copied from class:ReferenceBinding
Perform an upwards type projection as per JLS 4.10.5- Overrides:
upwardsProjection
in classReferenceBinding
- Parameters:
scope
- Relevant scope for evaluating type projectionmentionedTypeVariables
- Filter for mentioned type variabled
-
downwardsProjection
Description copied from class:ReferenceBinding
Perform a downwards type projection as per JLS 4.10.5- Overrides:
downwardsProjection
in classReferenceBinding
- Parameters:
scope
- Relevant scope for evaluating type projectionmentionedTypeVariables
- Filter for mentioned type variabled
-
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
-
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
-