Minor: reformat
This commit is contained in:
@@ -10,16 +10,16 @@ import org.jetbrains.kotlin.types.KotlinType
|
|||||||
import org.jetbrains.kotlin.types.Variance
|
import org.jetbrains.kotlin.types.Variance
|
||||||
|
|
||||||
class TypeMappingMode private constructor(
|
class TypeMappingMode private constructor(
|
||||||
val needPrimitiveBoxing: Boolean = true,
|
val needPrimitiveBoxing: Boolean = true,
|
||||||
val needInlineClassWrapping: Boolean = true,
|
val needInlineClassWrapping: Boolean = true,
|
||||||
val isForAnnotationParameter: Boolean = false,
|
val isForAnnotationParameter: Boolean = false,
|
||||||
// Here DeclarationSiteWildcards means wildcard generated because of declaration-site variance
|
// Here DeclarationSiteWildcards means wildcard generated because of declaration-site variance
|
||||||
val skipDeclarationSiteWildcards: Boolean = false,
|
val skipDeclarationSiteWildcards: Boolean = false,
|
||||||
val skipDeclarationSiteWildcardsIfPossible: Boolean = false,
|
val skipDeclarationSiteWildcardsIfPossible: Boolean = false,
|
||||||
private val genericArgumentMode: TypeMappingMode? = null,
|
private val genericArgumentMode: TypeMappingMode? = null,
|
||||||
val kotlinCollectionsToJavaCollections: Boolean = true,
|
val kotlinCollectionsToJavaCollections: Boolean = true,
|
||||||
private val genericContravariantArgumentMode: TypeMappingMode? = genericArgumentMode,
|
private val genericContravariantArgumentMode: TypeMappingMode? = genericArgumentMode,
|
||||||
private val genericInvariantArgumentMode: TypeMappingMode? = genericArgumentMode
|
private val genericInvariantArgumentMode: TypeMappingMode? = genericArgumentMode
|
||||||
) {
|
) {
|
||||||
companion object {
|
companion object {
|
||||||
/**
|
/**
|
||||||
@@ -62,9 +62,9 @@ class TypeMappingMode private constructor(
|
|||||||
|
|
||||||
@JvmField
|
@JvmField
|
||||||
val SUPER_TYPE_KOTLIN_COLLECTIONS_AS_IS = TypeMappingMode(
|
val SUPER_TYPE_KOTLIN_COLLECTIONS_AS_IS = TypeMappingMode(
|
||||||
skipDeclarationSiteWildcards = true,
|
skipDeclarationSiteWildcards = true,
|
||||||
genericArgumentMode = GENERIC_ARGUMENT,
|
genericArgumentMode = GENERIC_ARGUMENT,
|
||||||
kotlinCollectionsToJavaCollections = false
|
kotlinCollectionsToJavaCollections = false
|
||||||
)
|
)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -74,32 +74,33 @@ class TypeMappingMode private constructor(
|
|||||||
*/
|
*/
|
||||||
@JvmField
|
@JvmField
|
||||||
val VALUE_FOR_ANNOTATION = TypeMappingMode(
|
val VALUE_FOR_ANNOTATION = TypeMappingMode(
|
||||||
isForAnnotationParameter = true,
|
isForAnnotationParameter = true,
|
||||||
needPrimitiveBoxing = false,
|
needPrimitiveBoxing = false,
|
||||||
needInlineClassWrapping = false,
|
needInlineClassWrapping = false,
|
||||||
genericArgumentMode = TypeMappingMode(isForAnnotationParameter = true, genericArgumentMode = GENERIC_ARGUMENT))
|
genericArgumentMode = TypeMappingMode(isForAnnotationParameter = true, genericArgumentMode = GENERIC_ARGUMENT)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
fun getModeForReturnTypeNoGeneric(
|
fun getModeForReturnTypeNoGeneric(
|
||||||
isAnnotationMethod: Boolean
|
isAnnotationMethod: Boolean
|
||||||
) = if (isAnnotationMethod) VALUE_FOR_ANNOTATION else DEFAULT
|
) = if (isAnnotationMethod) VALUE_FOR_ANNOTATION else DEFAULT
|
||||||
|
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
fun getOptimalModeForValueParameter(
|
fun getOptimalModeForValueParameter(
|
||||||
type: KotlinType
|
type: KotlinType
|
||||||
) = getOptimalModeForSignaturePart(type, isForAnnotationParameter = false, canBeUsedInSupertypePosition = true)
|
) = getOptimalModeForSignaturePart(type, isForAnnotationParameter = false, canBeUsedInSupertypePosition = true)
|
||||||
|
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
fun getOptimalModeForReturnType(
|
fun getOptimalModeForReturnType(
|
||||||
type: KotlinType,
|
type: KotlinType,
|
||||||
isAnnotationMethod: Boolean
|
isAnnotationMethod: Boolean
|
||||||
) = getOptimalModeForSignaturePart(type, isForAnnotationParameter = isAnnotationMethod, canBeUsedInSupertypePosition = false)
|
) = getOptimalModeForSignaturePart(type, isForAnnotationParameter = isAnnotationMethod, canBeUsedInSupertypePosition = false)
|
||||||
|
|
||||||
private fun getOptimalModeForSignaturePart(
|
private fun getOptimalModeForSignaturePart(
|
||||||
type: KotlinType,
|
type: KotlinType,
|
||||||
isForAnnotationParameter: Boolean,
|
isForAnnotationParameter: Boolean,
|
||||||
canBeUsedInSupertypePosition: Boolean
|
canBeUsedInSupertypePosition: Boolean
|
||||||
): TypeMappingMode {
|
): TypeMappingMode {
|
||||||
if (type.arguments.isEmpty()) return DEFAULT
|
if (type.arguments.isEmpty()) return DEFAULT
|
||||||
|
|
||||||
@@ -113,49 +114,51 @@ class TypeMappingMode private constructor(
|
|||||||
val contravariantArgumentMode =
|
val contravariantArgumentMode =
|
||||||
if (!canBeUsedInSupertypePosition)
|
if (!canBeUsedInSupertypePosition)
|
||||||
TypeMappingMode(
|
TypeMappingMode(
|
||||||
isForAnnotationParameter = isForAnnotationParameter,
|
isForAnnotationParameter = isForAnnotationParameter,
|
||||||
skipDeclarationSiteWildcards = false,
|
skipDeclarationSiteWildcards = false,
|
||||||
skipDeclarationSiteWildcardsIfPossible = true)
|
skipDeclarationSiteWildcardsIfPossible = true
|
||||||
|
)
|
||||||
else
|
else
|
||||||
null
|
null
|
||||||
|
|
||||||
val invariantArgumentMode =
|
val invariantArgumentMode =
|
||||||
if (canBeUsedInSupertypePosition)
|
if (canBeUsedInSupertypePosition)
|
||||||
getOptimalModeForSignaturePart(type, isForAnnotationParameter, canBeUsedInSupertypePosition = false)
|
getOptimalModeForSignaturePart(type, isForAnnotationParameter, canBeUsedInSupertypePosition = false)
|
||||||
else
|
else
|
||||||
null
|
null
|
||||||
|
|
||||||
return TypeMappingMode(
|
return TypeMappingMode(
|
||||||
isForAnnotationParameter = isForAnnotationParameter,
|
isForAnnotationParameter = isForAnnotationParameter,
|
||||||
skipDeclarationSiteWildcards = !canBeUsedInSupertypePosition,
|
skipDeclarationSiteWildcards = !canBeUsedInSupertypePosition,
|
||||||
skipDeclarationSiteWildcardsIfPossible = true,
|
skipDeclarationSiteWildcardsIfPossible = true,
|
||||||
genericContravariantArgumentMode = contravariantArgumentMode,
|
genericContravariantArgumentMode = contravariantArgumentMode,
|
||||||
genericInvariantArgumentMode = invariantArgumentMode,
|
genericInvariantArgumentMode = invariantArgumentMode,
|
||||||
needInlineClassWrapping = !type.isInlineClassType()
|
needInlineClassWrapping = !type.isInlineClassType()
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
fun createWithConstantDeclarationSiteWildcardsMode(
|
fun createWithConstantDeclarationSiteWildcardsMode(
|
||||||
skipDeclarationSiteWildcards: Boolean,
|
skipDeclarationSiteWildcards: Boolean,
|
||||||
isForAnnotationParameter: Boolean,
|
isForAnnotationParameter: Boolean,
|
||||||
fallbackMode: TypeMappingMode? = null
|
fallbackMode: TypeMappingMode? = null
|
||||||
) = TypeMappingMode(
|
) = TypeMappingMode(
|
||||||
isForAnnotationParameter = isForAnnotationParameter,
|
isForAnnotationParameter = isForAnnotationParameter,
|
||||||
skipDeclarationSiteWildcards = skipDeclarationSiteWildcards,
|
skipDeclarationSiteWildcards = skipDeclarationSiteWildcards,
|
||||||
genericArgumentMode = fallbackMode)
|
genericArgumentMode = fallbackMode
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun toGenericArgumentMode(effectiveVariance: Variance): TypeMappingMode =
|
fun toGenericArgumentMode(effectiveVariance: Variance): TypeMappingMode =
|
||||||
when (effectiveVariance) {
|
when (effectiveVariance) {
|
||||||
Variance.IN_VARIANCE -> genericContravariantArgumentMode ?: this
|
Variance.IN_VARIANCE -> genericContravariantArgumentMode ?: this
|
||||||
Variance.INVARIANT -> genericInvariantArgumentMode ?: this
|
Variance.INVARIANT -> genericInvariantArgumentMode ?: this
|
||||||
else -> genericArgumentMode ?: this
|
else -> genericArgumentMode ?: this
|
||||||
}
|
}
|
||||||
|
|
||||||
fun wrapInlineClassesMode(): TypeMappingMode =
|
fun wrapInlineClassesMode(): TypeMappingMode =
|
||||||
TypeMappingMode(
|
TypeMappingMode(
|
||||||
needPrimitiveBoxing, true, isForAnnotationParameter, skipDeclarationSiteWildcards, skipDeclarationSiteWildcardsIfPossible,
|
needPrimitiveBoxing, true, isForAnnotationParameter, skipDeclarationSiteWildcards, skipDeclarationSiteWildcardsIfPossible,
|
||||||
genericArgumentMode, kotlinCollectionsToJavaCollections, genericContravariantArgumentMode, genericInvariantArgumentMode
|
genericArgumentMode, kotlinCollectionsToJavaCollections, genericContravariantArgumentMode, genericInvariantArgumentMode
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user