From dfd1a536244813137ba167163b63f401f62f0a8a Mon Sep 17 00:00:00 2001 From: Dmitriy Dolovov Date: Sat, 30 Jan 2021 13:10:26 +0300 Subject: [PATCH] [Commonizer] Don't serialize kotlin/Any? as the single type parameter upper bound --- .../cir/factory/CirTypeParameterFactory.kt | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/factory/CirTypeParameterFactory.kt b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/factory/CirTypeParameterFactory.kt index e52130ac410..ad6c008945e 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/factory/CirTypeParameterFactory.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/factory/CirTypeParameterFactory.kt @@ -14,15 +14,21 @@ import org.jetbrains.kotlin.descriptors.commonizer.utils.compactMap import org.jetbrains.kotlin.descriptors.commonizer.utils.intern import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.types.Variance +import org.jetbrains.kotlin.types.typeUtil.isNullableAny object CirTypeParameterFactory { - fun create(source: TypeParameterDescriptor): CirTypeParameter = create( - annotations = source.annotations.compactMap(CirAnnotationFactory::create), - name = source.name.intern(), - isReified = source.isReified, - variance = source.variance, - upperBounds = source.upperBounds.compactMap(CirTypeFactory::create) - ) + fun create(source: TypeParameterDescriptor): CirTypeParameter { + val upperBounds = source.upperBounds + val filteredUpperBounds = if (upperBounds.singleOrNull()?.isNullableAny() == true) emptyList() else upperBounds + + return 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") inline fun create(