Minor. Pull up method

This commit is contained in:
Denis Zharkov
2016-03-09 18:52:33 +03:00
parent d45fc3bad7
commit ea9f1b5649
2 changed files with 53 additions and 65 deletions
@@ -17,23 +17,13 @@
package org.jetbrains.kotlin.descriptors.impl;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.kotlin.builtins.KotlinBuiltIns;
import org.jetbrains.kotlin.descriptors.ClassifierDescriptor;
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor;
import org.jetbrains.kotlin.descriptors.SourceElement;
import org.jetbrains.kotlin.descriptors.TypeParameterDescriptor;
import org.jetbrains.kotlin.descriptors.annotations.Annotations;
import org.jetbrains.kotlin.name.Name;
import org.jetbrains.kotlin.resolve.descriptorUtil.DescriptorUtilsKt;
import org.jetbrains.kotlin.storage.StorageManager;
import org.jetbrains.kotlin.types.KotlinType;
import org.jetbrains.kotlin.types.TypeConstructor;
import org.jetbrains.kotlin.types.Variance;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
public abstract class AbstractLazyTypeParameterDescriptor extends AbstractTypeParameterDescriptor {
public AbstractLazyTypeParameterDescriptor(
@NotNull StorageManager storageManager,
@@ -47,56 +37,6 @@ public abstract class AbstractLazyTypeParameterDescriptor extends AbstractTypePa
super(storageManager, containingDeclaration, Annotations.Companion.getEMPTY() /* TODO */, name, variance, isReified, index, source);
}
@NotNull
@Override
protected TypeConstructor createTypeConstructor() {
return new TypeConstructor() {
@NotNull
@Override
public Collection<KotlinType> getSupertypes() {
return AbstractLazyTypeParameterDescriptor.this.getUpperBounds();
}
@NotNull
@Override
public List<TypeParameterDescriptor> getParameters() {
return Collections.emptyList();
}
@Override
public boolean isFinal() {
return false;
}
@Override
public boolean isDenotable() {
return true;
}
@Override
public ClassifierDescriptor getDeclarationDescriptor() {
return AbstractLazyTypeParameterDescriptor.this;
}
@NotNull
@Override
public Annotations getAnnotations() {
return AbstractLazyTypeParameterDescriptor.this.getAnnotations();
}
@NotNull
@Override
public KotlinBuiltIns getBuiltIns() {
return DescriptorUtilsKt.getBuiltIns(AbstractLazyTypeParameterDescriptor.this);
}
@Override
public String toString() {
return getName().toString();
}
};
}
@Override
public String toString() {
// Not using descriptor renderer to preserve laziness
@@ -20,9 +20,11 @@ import kotlin.Unit;
import kotlin.jvm.functions.Function0;
import kotlin.jvm.functions.Function1;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.kotlin.builtins.KotlinBuiltIns;
import org.jetbrains.kotlin.descriptors.*;
import org.jetbrains.kotlin.descriptors.annotations.Annotations;
import org.jetbrains.kotlin.name.Name;
import org.jetbrains.kotlin.resolve.descriptorUtil.DescriptorUtilsKt;
import org.jetbrains.kotlin.resolve.scopes.LazyScopeAdapter;
import org.jetbrains.kotlin.resolve.scopes.MemberScope;
import org.jetbrains.kotlin.resolve.scopes.TypeIntersectionScope;
@@ -30,11 +32,10 @@ import org.jetbrains.kotlin.storage.NotNullLazyValue;
import org.jetbrains.kotlin.storage.StorageManager;
import org.jetbrains.kotlin.types.*;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import static org.jetbrains.kotlin.resolve.descriptorUtil.DescriptorUtilsKt.getBuiltIns;
public abstract class AbstractTypeParameterDescriptor extends DeclarationDescriptorNonRootImpl implements TypeParameterDescriptor {
public static final List<KotlinType> FALLBACK_UPPER_BOUNDS_ON_RECURSION =
Collections.singletonList(ErrorUtils.createErrorType("Recursion while calculating upper bounds"));
@@ -132,6 +133,56 @@ public abstract class AbstractTypeParameterDescriptor extends DeclarationDescrip
});
}
@NotNull
protected TypeConstructor createTypeConstructor() {
return new TypeConstructor() {
@NotNull
@Override
public Collection<KotlinType> getSupertypes() {
return AbstractTypeParameterDescriptor.this.getUpperBounds();
}
@NotNull
@Override
public List<TypeParameterDescriptor> getParameters() {
return Collections.emptyList();
}
@Override
public boolean isFinal() {
return false;
}
@Override
public boolean isDenotable() {
return true;
}
@Override
public ClassifierDescriptor getDeclarationDescriptor() {
return AbstractTypeParameterDescriptor.this;
}
@NotNull
@Override
public Annotations getAnnotations() {
return AbstractTypeParameterDescriptor.this.getAnnotations();
}
@NotNull
@Override
public KotlinBuiltIns getBuiltIns() {
return DescriptorUtilsKt.getBuiltIns(AbstractTypeParameterDescriptor.this);
}
@Override
public String toString() {
return getName().toString();
}
};
}
@NotNull
protected abstract SupertypeLoopChecker getSupertypeLoopChecker();
protected abstract void reportCycleError(@NotNull KotlinType type);
@@ -139,9 +190,6 @@ public abstract class AbstractTypeParameterDescriptor extends DeclarationDescrip
@NotNull
protected abstract List<KotlinType> resolveUpperBounds();
@NotNull
protected abstract TypeConstructor createTypeConstructor();
@NotNull
@Override
public Variance getVariance() {