[Commonizer] Don't serialize kotlin/Any? as the single type parameter upper bound

This commit is contained in:
Dmitriy Dolovov
2021-01-30 13:10:26 +03:00
parent 1c8cd242bf
commit dfd1a53624
@@ -14,15 +14,21 @@ import org.jetbrains.kotlin.descriptors.commonizer.utils.compactMap
import org.jetbrains.kotlin.descriptors.commonizer.utils.intern import org.jetbrains.kotlin.descriptors.commonizer.utils.intern
import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.types.Variance import org.jetbrains.kotlin.types.Variance
import org.jetbrains.kotlin.types.typeUtil.isNullableAny
object CirTypeParameterFactory { object CirTypeParameterFactory {
fun create(source: TypeParameterDescriptor): CirTypeParameter = create( fun create(source: TypeParameterDescriptor): CirTypeParameter {
annotations = source.annotations.compactMap(CirAnnotationFactory::create), val upperBounds = source.upperBounds
name = source.name.intern(), val filteredUpperBounds = if (upperBounds.singleOrNull()?.isNullableAny() == true) emptyList() else upperBounds
isReified = source.isReified,
variance = source.variance, return create(
upperBounds = source.upperBounds.compactMap(CirTypeFactory::create) annotations = source.annotations.compactMap(CirAnnotationFactory::create),
) name = source.name.intern(),
isReified = source.isReified,
variance = source.variance,
upperBounds = filteredUpperBounds.compactMap(CirTypeFactory::create)
)
}
@Suppress("NOTHING_TO_INLINE") @Suppress("NOTHING_TO_INLINE")
inline fun create( inline fun create(