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

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.SourceTypeBinding
                  extended by org.aspectj.org.eclipse.jdt.internal.compiler.lookup.NestedTypeBinding
Direct Known Subclasses:
LocalTypeBinding, MemberTypeBinding

public abstract class NestedTypeBinding
extends SourceTypeBinding


Field Summary
 SyntheticArgumentBinding[] enclosingInstances
           
 SourceTypeBinding enclosingType
           
 SyntheticArgumentBinding[] outerLocalVariables
           
 
Fields inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding
defaultNullness, fields, memberFinder, memberTypes, methods, originalSuperclass, originalSuperInterfaces, privilegedHandler, prototype, scope, superclass, superInterfaces, typeFinder, typeVariables
 
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
NestedTypeBinding(char[][] typeName, ClassScope scope, SourceTypeBinding enclosingType)
           
NestedTypeBinding(NestedTypeBinding prototype)
           
 
Method Summary
 SyntheticArgumentBinding addSyntheticArgument(LocalVariableBinding actualOuterLocalVariable)
           
 SyntheticArgumentBinding addSyntheticArgument(ReferenceBinding targetEnclosingType)
           
 SyntheticArgumentBinding addSyntheticArgumentAndField(LocalVariableBinding actualOuterLocalVariable)
           
 SyntheticArgumentBinding addSyntheticArgumentAndField(ReferenceBinding targetEnclosingType)
           
protected  void checkRedundantNullnessDefaultRecurse(ASTNode location, Annotation[] annotations, long nullBits, boolean isJdk18)
          Recursively check if the given annotations are redundant with equal annotations at an enclosing level.
 ReferenceBinding enclosingType()
           
 int getEnclosingInstancesSlotSize()
           
 int getOuterLocalVariablesSlotSize()
           
 SyntheticArgumentBinding getSyntheticArgument(LocalVariableBinding actualOuterLocalVariable)
           
 SyntheticArgumentBinding getSyntheticArgument(ReferenceBinding targetEnclosingType, boolean onlyExactMatch, boolean scopeIsConstructorCall)
           
 SyntheticArgumentBinding[] syntheticEnclosingInstances()
           
 ReferenceBinding[] syntheticEnclosingInstanceTypes()
           
 SyntheticArgumentBinding[] syntheticOuterLocalVariables()
           
 void updateInnerEmulationDependents()
           
 
Methods inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding
addField, addMethod, addSyntheticArrayMethod, addSyntheticBridgeMethod, addSyntheticBridgeMethod, addSyntheticEnumMethod, addSyntheticFactoryMethod, addSyntheticField, addSyntheticFieldForAssert, addSyntheticFieldForClassLiteral, addSyntheticFieldForEnumValues, addSyntheticFieldForInnerclass, addSyntheticFieldForInnerclass, addSyntheticFieldForSwitchEnum, addSyntheticMethod, addSyntheticMethod, addSyntheticMethod, addSyntheticMethodForEnumInitialization, addSyntheticMethodForSwitchEnum, checkRedundantNullnessDefaultOne, clone, computeUniqueKey, containerAnnotationType, fields, genericSignature, genericTypeSignature, getAnnotationTagBits, getDefaultAbstractMethods, getExactConstructor, getExactMethod, getExactMethodBase, getField, getField, getFieldBase, getMemberType, getMethods, getMethods, getMethodsBase, getSyntheticBridgeMethod, getSyntheticField, getSyntheticField, hasMemberTypes, hasTypeBit, initializeDeprecatedAnnotationTagBits, isEquivalentTo, isGenericType, isHierarchyConnected, isPrototype, isRepeatableAnnotationType, isTaggedRepeatable, kind, memberTypes, methods, methodsBase, prototype, rememberTypeHierarchy, removeMethod, resolveTypeFor, resolveTypesFor, retrieveAnnotationHolder, setContainerAnnotationType, setFields, setMemberTypes, setMethods, setSuperClass, setSuperInterfaces, setTypeVariables, sourceEnd, sourceStart, superclass, superInterfaces, syntheticFields, syntheticMethods, tagAsHavingDefectiveContainerType, tagIndirectlyAccessibleMembers, toString, typeVariables, unannotated, unResolvedFields
 
Methods inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding
acceptsNonNullDefault, appendNullAnnotation, applyCloseableClassWhitelists, applyCloseableInterfaceWhitelists, availableFields, availableMethods, binarySearch, binarySearch, canBeInstantiated, canBeSeenBy, canBeSeenBy, canBeSeenBy, computeGenericTypeSignature, computeId, constantPoolName, debugName, depth, detectAnnotationCycle, enclosingTypeAt, enumConstantCount, fieldCount, getAccessFlags, getAnnotations, getFileName, getPackage, getSingleAbstractMethod, getTypeVariable, hashCode, hasIncompatibleSuperType, hasRestrictedAccess, implementsInterface, innerCanBeSeenBy, innerCanBeSeenBy, isAbstract, isAnnotationType, isBinaryBinding, isClass, isCompatibleWith, isConsistentIntersection, isDefault, isDeprecated, isEnum, isFinal, isFunctionalInterface, isHierarchyBeingActivelyConnected, isHierarchyBeingConnected, isInterface, isOrEnclosedByPrivateType, isPrivate, isProperType, isProtected, isPublic, isStatic, isStrictfp, isSubtypeOf, isSubTypeOfRTL, isSuperclassOf, isThrowable, isUncheckedException, isUsed, isViewedAsDeprecated, nullAnnotatedReadableName, outermostEnclosingType, qualifiedSourceName, readableName, setAnnotations, shortReadableName, signature, sortFields, sortMethods, sourceName
 
Methods inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.TypeBinding
actualType, annotatedDebugName, capture, closestMatch, collectMissingTypes, collectSubstitutes, dimensions, enterRecursiveFunction, equalsEquals, erasure, exitRecursiveFunction, findSuperTypeOriginatingFrom, findSuperTypeOriginatingFrom, genericCast, getErasureCompatibleType, getIntersectingTypes, getTypeAnnotations, hasNullTypeAnnotations, hasTypeAnnotations, isAnonymousType, isArrayType, isBaseType, isBoundParameterizedType, isBoxedPrimitiveType, isCapture, isCompatibleWith, isHierarchyInconsistent, isIntersectionCastType, isIntersectionType, isLocalType, isMemberType, isNestedType, isNumericType, isParameterizedType, isParameterizedTypeWithActualArguments, isParameterizedWithOwnVariables, isPrimitiveOrBoxedPrimitiveType, isPrimitiveType, isProvablyDistinct, isRawType, isReifiable, isTypeArgumentContainedBy, isTypeVariable, isUnboundWildcard, isUnresolvedType, isWildcard, leafComponentType, mentionsAny, needsUncheckedConversion, notEquals, original, qualifiedPackageName, setTypeAnnotations, sIsMoreSpecific, swapUnresolved, uncapture, wellKnownType
 
Methods inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.Binding
computeUniqueKey, isParameter, isValidBinding, isVolatile, problemId, setAnnotations
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

enclosingType

public SourceTypeBinding enclosingType

enclosingInstances

public SyntheticArgumentBinding[] enclosingInstances

outerLocalVariables

public SyntheticArgumentBinding[] outerLocalVariables
Constructor Detail

NestedTypeBinding

public NestedTypeBinding(char[][] typeName,
                         ClassScope scope,
                         SourceTypeBinding enclosingType)

NestedTypeBinding

public NestedTypeBinding(NestedTypeBinding prototype)
Method Detail

addSyntheticArgument

public SyntheticArgumentBinding addSyntheticArgument(LocalVariableBinding actualOuterLocalVariable)

addSyntheticArgument

public SyntheticArgumentBinding addSyntheticArgument(ReferenceBinding targetEnclosingType)

addSyntheticArgumentAndField

public SyntheticArgumentBinding addSyntheticArgumentAndField(LocalVariableBinding actualOuterLocalVariable)

addSyntheticArgumentAndField

public SyntheticArgumentBinding addSyntheticArgumentAndField(ReferenceBinding targetEnclosingType)

checkRedundantNullnessDefaultRecurse

protected void checkRedundantNullnessDefaultRecurse(ASTNode location,
                                                    Annotation[] annotations,
                                                    long nullBits,
                                                    boolean isJdk18)
Description copied from class: SourceTypeBinding
Recursively check if the given annotations are redundant with equal annotations at an enclosing level.

Overrides:
checkRedundantNullnessDefaultRecurse in class SourceTypeBinding
Parameters:
location - fallback location to report the warning against (if we can't blame a specific annotation)
annotations - search these for the annotation that should be blamed in warning messages
nullBits - in 1.7- times these are the annotationTagBits, in 1.8+ the bitvector from Binding.NullnessDefaultMASK
isJdk18 - toggles the interpretation of 'nullBits'

enclosingType

public ReferenceBinding enclosingType()
Overrides:
enclosingType in class TypeBinding

getEnclosingInstancesSlotSize

public int getEnclosingInstancesSlotSize()
Overrides:
getEnclosingInstancesSlotSize in class ReferenceBinding
Returns:
the enclosingInstancesSlotSize

getOuterLocalVariablesSlotSize

public int getOuterLocalVariablesSlotSize()
Overrides:
getOuterLocalVariablesSlotSize in class ReferenceBinding
Returns:
the outerLocalVariablesSlotSize

getSyntheticArgument

public SyntheticArgumentBinding getSyntheticArgument(LocalVariableBinding actualOuterLocalVariable)

getSyntheticArgument

public SyntheticArgumentBinding getSyntheticArgument(ReferenceBinding targetEnclosingType,
                                                     boolean onlyExactMatch,
                                                     boolean scopeIsConstructorCall)

syntheticEnclosingInstances

public SyntheticArgumentBinding[] syntheticEnclosingInstances()

syntheticEnclosingInstanceTypes

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

syntheticOuterLocalVariables

public SyntheticArgumentBinding[] syntheticOuterLocalVariables()
Overrides:
syntheticOuterLocalVariables in class TypeBinding

updateInnerEmulationDependents

public void updateInnerEmulationDependents()