From 698b3fce9e06571b60f254590ad6d1ef00409cab Mon Sep 17 00:00:00 2001 From: "sebastian.sellmair" Date: Fri, 10 Sep 2021 11:23:12 +0200 Subject: [PATCH] [Commonizer] ClassOrTypeAliasTypeCommonizer: Support 'enableOptimisticNumberTypeCommonization' ^KT-48288 --- .../commonizer/core/ClassOrTypeAliasTypeCommonizer.kt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/native/commonizer/src/org/jetbrains/kotlin/commonizer/core/ClassOrTypeAliasTypeCommonizer.kt b/native/commonizer/src/org/jetbrains/kotlin/commonizer/core/ClassOrTypeAliasTypeCommonizer.kt index cfa32781fe8..dbb9f5f437d 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/commonizer/core/ClassOrTypeAliasTypeCommonizer.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/commonizer/core/ClassOrTypeAliasTypeCommonizer.kt @@ -12,6 +12,7 @@ import org.jetbrains.kotlin.commonizer.utils.isUnderKotlinNativeSyntheticPackage import org.jetbrains.kotlin.commonizer.utils.safeCastValues import org.jetbrains.kotlin.commonizer.utils.singleDistinctValueOrNull import org.jetbrains.kotlin.descriptors.Visibilities +import org.jetbrains.kotlin.utils.addToStdlib.ifTrue internal class ClassOrTypeAliasTypeCommonizer( private val typeCommonizer: TypeCommonizer, @@ -25,7 +26,10 @@ internal class ClassOrTypeAliasTypeCommonizer( val expansions = values.map { it.expandedType() } val isMarkedNullable = isMarkedNullableCommonizer.commonize(expansions.map { it.isMarkedNullable }) ?: return null val arguments = TypeArgumentListCommonizer(typeCommonizer).commonize(values.map { it.arguments }) ?: return null - val classifierId = selectClassifierId(values) ?: return null + val classifierId = selectClassifierId(values) + ?: typeCommonizer.options.enableOptimisticNumberTypeCommonization.ifTrue { + return OptimisticNumbersTypeCommonizer.commonize(values.map { it.expandedType() }) + } ?: return null val outerTypes = values.safeCastValues()?.map { it.outerType } val outerType = when {