Drop TypeUsage::MEMBER_SIGNATURE_CONTRAVARIANT

It's only used for value parameters, but they're always resolved
with flexible types now
This commit is contained in:
Denis Zharkov
2017-06-06 16:34:59 +03:00
parent 6cd6608281
commit 58442e7b8b
3 changed files with 4 additions and 4 deletions
@@ -21,7 +21,6 @@ package org.jetbrains.kotlin.load.java.components;
* This enum encodes the kinds of occurrences
*/
public enum TypeUsage {
MEMBER_SIGNATURE_CONTRAVARIANT,
SUPERTYPE,
COMMON
}
@@ -168,7 +168,7 @@ abstract class LazyJavaScope(protected val c: LazyJavaResolverContext) : MemberS
val (index, javaParameter) = pair
val annotations = c.resolveAnnotations(javaParameter)
val typeUsage = LazyJavaTypeAttributes(TypeUsage.MEMBER_SIGNATURE_CONTRAVARIANT, annotations)
val typeUsage = LazyJavaTypeAttributes(TypeUsage.COMMON, annotations)
val (outType, varargElementType) =
if (javaParameter.isVararg) {
val paramType = javaParameter.type as? JavaArrayType
@@ -25,7 +25,8 @@ import org.jetbrains.kotlin.load.java.ANNOTATIONS_COPIED_TO_TYPES
import org.jetbrains.kotlin.load.java.JvmAnnotationNames.JETBRAINS_NOT_NULL_ANNOTATION
import org.jetbrains.kotlin.load.java.JvmAnnotationNames.JETBRAINS_NULLABLE_ANNOTATION
import org.jetbrains.kotlin.load.java.components.TypeUsage
import org.jetbrains.kotlin.load.java.components.TypeUsage.*
import org.jetbrains.kotlin.load.java.components.TypeUsage.COMMON
import org.jetbrains.kotlin.load.java.components.TypeUsage.SUPERTYPE
import org.jetbrains.kotlin.load.java.lazy.LazyJavaAnnotations
import org.jetbrains.kotlin.load.java.lazy.LazyJavaResolverContext
import org.jetbrains.kotlin.load.java.lazy.TypeParameterResolver
@@ -82,7 +83,7 @@ class JavaTypeResolver(
c.module.builtIns.getArrayType(OUT_VARIANCE, componentType).makeNullableAsSpecified(true))
}
val projectionKind = if (attr.howThisTypeIsUsed == MEMBER_SIGNATURE_CONTRAVARIANT || isVararg) OUT_VARIANCE else INVARIANT
val projectionKind = if (isVararg) OUT_VARIANCE else INVARIANT
val result = c.module.builtIns.getArrayType(projectionKind, componentType)
return@run result.makeNullableAsSpecified(!attr.isMarkedNotNull)
}.replaceAnnotations(attr.typeAnnotations)