org.jetbrains.kotlin.descriptors.impl
Class AbstractTypeParameterDescriptor

java.lang.Object
  extended by org.jetbrains.kotlin.descriptors.annotations.AnnotatedImpl
      extended by org.jetbrains.kotlin.descriptors.impl.DeclarationDescriptorImpl
          extended by org.jetbrains.kotlin.descriptors.impl.DeclarationDescriptorNonRootImpl
              extended by org.jetbrains.kotlin.descriptors.impl.AbstractTypeParameterDescriptor
All Implemented Interfaces:
Annotated, ClassifierDescriptor, DeclarationDescriptor, DeclarationDescriptorNonRoot, DeclarationDescriptorWithSource, Named, TypeParameterDescriptor
Direct Known Subclasses:
AbstractLazyTypeParameterDescriptor, TypeParameterDescriptorImpl

public abstract class AbstractTypeParameterDescriptor
extends DeclarationDescriptorNonRootImpl
implements TypeParameterDescriptor


Field Summary
static java.util.List<KotlinType> FALLBACK_UPPER_BOUNDS_ON_RECURSION
           
 
Constructor Summary
protected AbstractTypeParameterDescriptor(StorageManager storageManager, DeclarationDescriptor containingDeclaration, Annotations annotations, Name name, Variance variance, boolean isReified, int index, SourceElement source)
           
 
Method Summary
<R,D> R
accept(DeclarationDescriptorVisitor<R,D> visitor, D data)
           
protected abstract  TypeConstructor createTypeConstructor()
           
 KotlinType getDefaultType()
           
 int getIndex()
           
 java.util.List<KotlinType> getLowerBounds()
           
protected abstract  SupertypeLoopChecker getSupertypeLoopChecker()
           
 TypeConstructor getTypeConstructor()
           
 java.util.List<KotlinType> getUpperBounds()
           
 Variance getVariance()
           
 boolean isCapturedFromOuterDeclaration()
          Is current parameter just a copy of another type parameter (getOriginal) from outer declaration to be used for type constructor of inner declaration (i.e.
 boolean isReified()
           
protected abstract  void reportCycleError(KotlinType type)
           
protected abstract  java.util.List<KotlinType> resolveUpperBounds()
           
 TypeParameterDescriptor substitute(TypeSubstitutor substitutor)
          Deprecated. 
 
Methods inherited from class org.jetbrains.kotlin.descriptors.impl.DeclarationDescriptorNonRootImpl
getContainingDeclaration, getOriginal, getSource
 
Methods inherited from class org.jetbrains.kotlin.descriptors.impl.DeclarationDescriptorImpl
acceptVoid, getName, toString, toString
 
Methods inherited from class org.jetbrains.kotlin.descriptors.annotations.AnnotatedImpl
getAnnotations
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.jetbrains.kotlin.descriptors.DeclarationDescriptorNonRoot
getContainingDeclaration
 
Methods inherited from interface org.jetbrains.kotlin.descriptors.DeclarationDescriptorWithSource
getOriginal, getSource
 
Methods inherited from interface org.jetbrains.kotlin.descriptors.DeclarationDescriptor
acceptVoid
 
Methods inherited from interface org.jetbrains.kotlin.descriptors.annotations.Annotated
getAnnotations
 
Methods inherited from interface org.jetbrains.kotlin.descriptors.Named
getName
 

Field Detail

FALLBACK_UPPER_BOUNDS_ON_RECURSION

public static final java.util.List<KotlinType> FALLBACK_UPPER_BOUNDS_ON_RECURSION
Constructor Detail

AbstractTypeParameterDescriptor

protected AbstractTypeParameterDescriptor(@NotNull
                                          StorageManager storageManager,
                                          @NotNull
                                          DeclarationDescriptor containingDeclaration,
                                          @NotNull
                                          Annotations annotations,
                                          @NotNull
                                          Name name,
                                          @NotNull
                                          Variance variance,
                                          boolean isReified,
                                          int index,
                                          @NotNull
                                          SourceElement source)
Method Detail

getSupertypeLoopChecker

@NotNull
protected abstract SupertypeLoopChecker getSupertypeLoopChecker()

reportCycleError

protected abstract void reportCycleError(@NotNull
                                         KotlinType type)

resolveUpperBounds

@NotNull
protected abstract java.util.List<KotlinType> resolveUpperBounds()

createTypeConstructor

@NotNull
protected abstract TypeConstructor createTypeConstructor()

getVariance

@NotNull
public Variance getVariance()
Specified by:
getVariance in interface TypeParameterDescriptor

isReified

public boolean isReified()
Specified by:
isReified in interface TypeParameterDescriptor

getIndex

public int getIndex()
Specified by:
getIndex in interface TypeParameterDescriptor

isCapturedFromOuterDeclaration

public boolean isCapturedFromOuterDeclaration()
Description copied from interface: TypeParameterDescriptor
Is current parameter just a copy of another type parameter (getOriginal) from outer declaration to be used for type constructor of inner declaration (i.e. inner class). If this method returns true: 1. Containing declaration for current parameter is the inner one 2. 'getOriginal' returns original type parameter from outer declaration 3. 'getTypeConstructor' is the same as for original declaration (at least in means of 'equals')

Specified by:
isCapturedFromOuterDeclaration in interface TypeParameterDescriptor

getUpperBounds

@NotNull
public java.util.List<KotlinType> getUpperBounds()
Specified by:
getUpperBounds in interface TypeParameterDescriptor

getTypeConstructor

@NotNull
public TypeConstructor getTypeConstructor()
Specified by:
getTypeConstructor in interface ClassifierDescriptor
Specified by:
getTypeConstructor in interface TypeParameterDescriptor

getDefaultType

@NotNull
public KotlinType getDefaultType()
Specified by:
getDefaultType in interface ClassifierDescriptor

getLowerBounds

@NotNull
public java.util.List<KotlinType> getLowerBounds()
Specified by:
getLowerBounds in interface TypeParameterDescriptor

substitute

@NotNull
@Deprecated
public TypeParameterDescriptor substitute(@NotNull
                                                             TypeSubstitutor substitutor)
Deprecated. 

Specified by:
substitute in interface DeclarationDescriptor
Specified by:
substitute in interface TypeParameterDescriptor

accept

public <R,D> R accept(DeclarationDescriptorVisitor<R,D> visitor,
                      D data)
Specified by:
accept in interface DeclarationDescriptor