diff --git a/native/commonizer/src/org/jetbrains/kotlin/commonizer/core/TypeAliasCommonizer.kt b/native/commonizer/src/org/jetbrains/kotlin/commonizer/core/TypeAliasCommonizer.kt index ce04d83ac53..f074d094813 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/commonizer/core/TypeAliasCommonizer.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/commonizer/core/TypeAliasCommonizer.kt @@ -17,7 +17,7 @@ class TypeAliasCommonizer( ) : NullableSingleInvocationCommonizer { private val typeCommonizer = typeCommonizer.withOptions { - withBackwardsTypeAliasSubstitutionEnabled(false).withOptimisticNumberTypeCommonizationEnabled(true) + withBackwardsTypeAliasSubstitutionEnabled(false) } override fun invoke(values: List): CirTypeAlias? { diff --git a/native/commonizer/src/org/jetbrains/kotlin/commonizer/core/TypeCommonizer.kt b/native/commonizer/src/org/jetbrains/kotlin/commonizer/core/TypeCommonizer.kt index 8c5ae9a4f89..c2e419d004c 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/commonizer/core/TypeCommonizer.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/commonizer/core/TypeCommonizer.kt @@ -34,7 +34,7 @@ class TypeCommonizer( } data class Options( - val enableOptimisticNumberTypeCommonization: Boolean = false, + val enableOptimisticNumberTypeCommonization: Boolean = true, val enableCovariantNullabilityCommonization: Boolean = false, val enableForwardTypeAliasSubstitution: Boolean = true, val enableBackwardsTypeAliasSubstitution: Boolean = true, diff --git a/native/commonizer/testData/callableMemberCommonization/returnTypes/commonized/common/package_root.kt b/native/commonizer/testData/callableMemberCommonization/returnTypes/commonized/common/package_root.kt index d5b5e346246..844feafa38b 100644 --- a/native/commonizer/testData/callableMemberCommonization/returnTypes/commonized/common/package_root.kt +++ b/native/commonizer/testData/callableMemberCommonization/returnTypes/commonized/common/package_root.kt @@ -27,6 +27,12 @@ expect fun function5(): Planet expect fun function6(): Planet expect fun function7(): C +// Optimistic Number Commonization: KT-48455, KT-48568 +expect val propertyWithMismatchedType1: Int +expect val propertyWithMismatchedType2: Short +expect fun functionWithMismatchedType1(): Int +expect fun functionWithMismatchedType2(): Short + expect class Box(value: T) { val value: T } diff --git a/native/commonizer/testData/propertyCommonization/liftingUpConst/commonized/common/package_root.kt b/native/commonizer/testData/propertyCommonization/liftingUpConst/commonized/common/package_root.kt index b9348eef0b0..c3912570b8a 100644 --- a/native/commonizer/testData/propertyCommonization/liftingUpConst/commonized/common/package_root.kt +++ b/native/commonizer/testData/propertyCommonization/liftingUpConst/commonized/common/package_root.kt @@ -19,3 +19,10 @@ const val property17 = "42" expect val property18: String const val property19: Char = 42.toChar() expect val property20: Char + +// Optimistic Number Commonization: KT-48455, KT-48568 +// Mismatched const types should be commonized as expect val's +expect val property22: Byte +expect val property23: Short +expect val property24: Int +expect val property26: Float \ No newline at end of file diff --git a/native/commonizer/tests/org/jetbrains/kotlin/commonizer/hierarchical/HierarchicalOptimisticNumbersTypeCommonizerTest.kt b/native/commonizer/tests/org/jetbrains/kotlin/commonizer/hierarchical/HierarchicalOptimisticNumbersTypeCommonizerTest.kt index f4c5b9f00e2..6e702272908 100644 --- a/native/commonizer/tests/org/jetbrains/kotlin/commonizer/hierarchical/HierarchicalOptimisticNumbersTypeCommonizerTest.kt +++ b/native/commonizer/tests/org/jetbrains/kotlin/commonizer/hierarchical/HierarchicalOptimisticNumbersTypeCommonizerTest.kt @@ -678,12 +678,7 @@ class HierarchicalOptimisticNumbersTypeCommonizerTest : AbstractInlineSourcesCom simpleSingleSourceTarget("b", "val x: ULong = null!!") } - /* - Only commonize return types that were specified using a type-alias. - As with function value parameters, this is not a hard requirement. - It would also be reasonable to support this case. - */ - result.assertCommonized("(a, b)", "") + result.assertCommonized("(a, b)", "expect val x: kotlin.UInt") } fun `test property with aliased number return type`() {