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
FieldsFields inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding
compoundName, fPackage, LUB_GENERIC, modifiers, samProblemBinding, singleAbstractMethod, sourceNameFields 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
ConstructorsConstructorDescriptionIntersectionTypeBinding18(ReferenceBinding[] intersectingTypes, LookupEnvironment environment) -
Method Summary
Modifier and TypeMethodDescriptionbooleanAnswer true if the receiver can be instantiatedbooleancanBeSeenBy(PackageBinding invocationPackage) Answer true if the receiver is visible to the invocationPackage.booleancanBeSeenBy(ReferenceBinding receiverType, ReferenceBinding invocationType) Answer true if the receiver is visible to the receiverType and the invocationType.booleancanBeSeenBy(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) booleanhasTypeBit(int bit) Answer an additional bit characterizing this type, likeTypeIds.BitAutoCloseable.booleanbooleanisCompatibleWith(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)booleanbooleanDoes this type lack a class file representation on its own ?booleanisSubtypeOf(TypeBinding other, 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[]Answer the qualified name of the receiver's package separated by periods or an empty string if its the default package.char[]Answer the source name for the type.char[]Answer the receiver's signature.char[]char[]toString()longRefresh 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, computeGenericTypeSignature, computeId, computeId, computeUniqueKey, depth, detectAnnotationCycle, detectWrapperResource, enclosingTypeAt, enumConstantCount, fieldCount, fields, getAccessFlags, getAnnotations, getAnnotationTagBits, getComponent, getEnclosingInstancesSlotSize, getExactConstructor, getExactMethod, getField, getField, getFileName, getMemberType, getMethods, getMethods, getOuterLocalVariablesSlotSize, getRecordComponent, getRecordComponentAccessor, getSingleAbstractMethod, getTypeVariable, hasEnclosingInstanceContext, hashCode, hasHierarchyCheckStarted, hasIncompatibleSuperType, hasMemberTypes, hasMethodWithNumArgs, hasNullBit, hasRestrictedAccess, implementsInterface, innerCanBeSeenBy, innerCanBeSeenBy, isAbstract, isAnnotationType, isBinaryBinding, isClass, isConsistentIntersection, isDefault, isDeprecated, isEnum, isFieldInitializationFinished, isFinal, isFunctionalInterface, isHierarchyBeingActivelyConnected, isHierarchyBeingConnected, isHierarchyConnected, isImplicitType, isInPreconstructorContext, 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, unResolvedComponents, unResolvedFieldsMethods inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.TypeBinding
actualType, annotatedDebugName, capture, closestMatch, collectMissingTypes, collectSubstitutes, components, 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, isReadyForAnnotations, isRecord, isReifiable, isRepeatableAnnotationType, isTypeArgumentContainedBy, isTypeVariable, isUnboundWildcard, isUnresolvedType, isWildcard, leafComponentType, needsUncheckedConversion, notEquals, original, prototype, setTypeAnnotations, signableName, sIsMoreSpecific, swapUnresolved, syntheticOuterLocalVariables, syntheticTypeVariablesMentioned, typeVariables, unannotated, uncapture, wellKnownBaseType, wellKnownType, withoutToplevelNullAnnotationMethods inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.Binding
computeUniqueKey, initializeDeprecatedAnnotationTagBits, isParameter, isPatternVariable, 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:TypeBindingVirtual 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:
clonein classTypeBinding
-
getInterfaceAbstractContracts
protected MethodBinding[] getInterfaceAbstractContracts(Scope scope, boolean replaceWildcards, boolean filterDefaultMethods) throws org.aspectj.org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding.InvalidBindingException - Overrides:
getInterfaceAbstractContractsin classReferenceBinding- Throws:
org.aspectj.org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding.InvalidBindingException
-
hasTypeBit
public boolean hasTypeBit(int bit) Description copied from class:TypeBindingAnswer an additional bit characterizing this type, likeTypeIds.BitAutoCloseable.- Overrides:
hasTypeBitin classTypeBinding
-
canBeInstantiated
public boolean canBeInstantiated()Description copied from class:ReferenceBindingAnswer true if the receiver can be instantiated- Overrides:
canBeInstantiatedin classReferenceBinding
-
canBeSeenBy
Description copied from class:ReferenceBindingAnswer true if the receiver is visible to the invocationPackage.- Overrides:
canBeSeenByin classReferenceBinding
-
canBeSeenBy
Description copied from class:ReferenceBindingAnswer true if the receiver is visible to the type provided by the scope.- Overrides:
canBeSeenByin classReferenceBinding
-
canBeSeenBy
Description copied from class:ReferenceBindingAnswer true if the receiver is visible to the receiverType and the invocationType.- Overrides:
canBeSeenByin classReferenceBinding
-
constantPoolName
public char[] constantPoolName()Description copied from class:ReferenceBindingAnswer the receiver's constant pool name. NOTE: This method should only be used during/after code gen.- Overrides:
constantPoolNamein classReferenceBinding
-
getPackage
- Overrides:
getPackagein classReferenceBinding
-
getIntersectingTypes
- Overrides:
getIntersectingTypesin classTypeBinding
-
superclass
- Overrides:
superclassin classReferenceBinding
-
superInterfaces
- Overrides:
superInterfacesin classReferenceBinding
-
isBoxedPrimitiveType
public boolean isBoxedPrimitiveType()- Overrides:
isBoxedPrimitiveTypein classTypeBinding
-
isCompatibleWith
Description copied from class:ReferenceBindingAnswer 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:
isCompatibleWithin classReferenceBinding
-
isSubtypeOf
- Overrides:
isSubtypeOfin classReferenceBinding
-
erasure
- Overrides:
erasurein classTypeBinding
-
qualifiedPackageName
public char[] qualifiedPackageName()Description copied from class:TypeBindingAnswer the qualified name of the receiver's package separated by periods or an empty string if its the default package. For example, {java.util}.- Overrides:
qualifiedPackageNamein classTypeBinding
-
qualifiedSourceName
public char[] qualifiedSourceName()Description copied from class:ReferenceBindingAnswer 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".- Overrides:
qualifiedSourceNamein classReferenceBinding
-
sourceName
public char[] sourceName()- Overrides:
sourceNamein classReferenceBinding
-
readableName
public char[] readableName()Description copied from class:ReferenceBindingAnswer the receiver's signature. NOTE: This method should only be used during/after code gen.- Overrides:
readableNamein classReferenceBinding
-
shortReadableName
public char[] shortReadableName()- Overrides:
shortReadableNamein classReferenceBinding
-
isIntersectionType18
public boolean isIntersectionType18()- Overrides:
isIntersectionType18in classTypeBinding
-
kind
public int kind()- Overrides:
kindin classTypeBinding
-
debugName
- Overrides:
debugNamein classReferenceBinding
-
toString
-
getSAMType
-
upwardsProjection
Description copied from class:ReferenceBindingPerform an upwards type projection as per JLS 4.10.5- Overrides:
upwardsProjectionin classReferenceBinding- 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:ReferenceBindingPerform a downwards type projection as per JLS 4.10.5- Overrides:
downwardsProjectionin classReferenceBinding- 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
-
mentionsAny
Description copied from class:TypeBindingDoes this type mention any of the given type parameters, except the one at position 'idx'?- Overrides:
mentionsAnyin 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
-
isNonDenotable
public boolean isNonDenotable()Description copied from class:TypeBindingDoes this type lack a class file representation on its own ?- Overrides:
isNonDenotablein classTypeBinding
-