Minor. Methods renamed to reflect tha fact that they handle more types than just collections

This commit is contained in:
Andrey Breslav
2015-04-15 14:11:50 +03:00
committed by Denis Zharkov
parent 579ca9c1f2
commit d140e83386
4 changed files with 15 additions and 14 deletions
@@ -158,12 +158,13 @@ public class SignaturesPropagationData {
if (JvmPackage.getPLATFORM_TYPES()) return autoType;
List<TypeAndVariance> typesFromSuperMethods = ContainerUtil.map(superFunctions,
new Function<FunctionDescriptor, TypeAndVariance>() {
@Override
public TypeAndVariance fun(FunctionDescriptor superFunction) {
return new TypeAndVariance(superFunction.getReturnType(), Variance.OUT_VARIANCE);
}
});
new Function<FunctionDescriptor, TypeAndVariance>() {
@Override
public TypeAndVariance fun(FunctionDescriptor superFunction) {
return new TypeAndVariance(superFunction.getReturnType(),
Variance.OUT_VARIANCE);
}
});
return modifyTypeAccordingToSuperMethods(autoType, typesFromSuperMethods, MEMBER_SIGNATURE_COVARIANT);
}
@@ -629,10 +630,10 @@ public class SignaturesPropagationData {
if (classifierFromSuper instanceof ClassDescriptor) {
ClassDescriptor classFromSuper = (ClassDescriptor) classifierFromSuper;
if (JavaToKotlinClassMap.INSTANCE.isMutableCollection(classFromSuper)) {
if (JavaToKotlinClassMap.INSTANCE.isMutable(classFromSuper)) {
someSupersMutable = true;
}
else if (JavaToKotlinClassMap.INSTANCE.isReadOnlyCollection(classFromSuper)) {
else if (JavaToKotlinClassMap.INSTANCE.isReadOnly(classFromSuper)) {
if (typeFromSuper.varianceOfPosition == Variance.OUT_VARIANCE) {
someSupersCovariantReadOnly = true;
}
@@ -648,12 +649,12 @@ public class SignaturesPropagationData {
return classifier;
}
else if (someSupersMutable) {
if (JavaToKotlinClassMap.INSTANCE.isReadOnlyCollection(klass)) {
if (JavaToKotlinClassMap.INSTANCE.isReadOnly(klass)) {
return JavaToKotlinClassMap.INSTANCE.convertReadOnlyToMutable(klass);
}
}
else if (someSupersNotCovariantReadOnly || someSupersCovariantReadOnly) {
if (JavaToKotlinClassMap.INSTANCE.isMutableCollection(klass)) {
if (JavaToKotlinClassMap.INSTANCE.isMutable(klass)) {
return JavaToKotlinClassMap.INSTANCE.convertMutableToReadOnly(klass);
}
}
@@ -162,7 +162,7 @@ class LazyJavaTypeResolver(
val kotlinDescriptor = javaToKotlin.mapJavaToKotlin(fqName) ?: return null
if (howThisTypeIsUsedEffectively == MEMBER_SIGNATURE_COVARIANT || howThisTypeIsUsedEffectively == SUPERTYPE) {
if (javaToKotlin.isReadOnlyCollection(kotlinDescriptor)) {
if (javaToKotlin.isReadOnly(kotlinDescriptor)) {
return javaToKotlin.convertReadOnlyToMutable(kotlinDescriptor)
}
}
@@ -182,11 +182,11 @@ public class JavaToKotlinClassMap implements PlatformToKotlinClassMap {
return className.isSafe() ? mapPlatformClass(className.toSafe()) : Collections.<ClassDescriptor>emptySet();
}
public boolean isMutableCollection(@NotNull ClassDescriptor mutable) {
public boolean isMutable(@NotNull ClassDescriptor mutable) {
return mutableToReadOnly.containsKey(mutable);
}
public boolean isReadOnlyCollection(@NotNull ClassDescriptor readOnly) {
public boolean isReadOnly(@NotNull ClassDescriptor readOnly) {
return readOnlyToMutable.containsKey(readOnly);
}
@@ -43,7 +43,7 @@ public fun approximateFlexibleTypes(jetType: JetType, outermost: Boolean = true)
if (jetType.isFlexible()) {
val flexible = jetType.flexibility()
val lowerClass = flexible.lowerBound.getConstructor().getDeclarationDescriptor() as? ClassDescriptor?
val isCollection = lowerClass != null && JavaToKotlinClassMap.INSTANCE.isMutableCollection(lowerClass)
val isCollection = lowerClass != null && JavaToKotlinClassMap.INSTANCE.isMutable(lowerClass)
// (Mutable)Collection<T>! -> MutableCollection<T>?
// Foo<(Mutable)Collection<T>!>! -> Foo<Collection<T>>?
// Foo! -> Foo?