From eaa0eb285111ea04e710e4b9bbf6752f91176fac Mon Sep 17 00:00:00 2001 From: "sebastian.sellmair" Date: Thu, 24 Jun 2021 09:46:32 +0200 Subject: [PATCH] [Commonizer] HierarchicalClassAndTypeAliasCommonizationTest: Add function parameter tests --- ...hicalClassAndTypeAliasCommonizationTest.kt | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/native/commonizer/tests/org/jetbrains/kotlin/commonizer/hierarchical/HierarchicalClassAndTypeAliasCommonizationTest.kt b/native/commonizer/tests/org/jetbrains/kotlin/commonizer/hierarchical/HierarchicalClassAndTypeAliasCommonizationTest.kt index 7ae7df1133b..793d4b86ebb 100644 --- a/native/commonizer/tests/org/jetbrains/kotlin/commonizer/hierarchical/HierarchicalClassAndTypeAliasCommonizationTest.kt +++ b/native/commonizer/tests/org/jetbrains/kotlin/commonizer/hierarchical/HierarchicalClassAndTypeAliasCommonizationTest.kt @@ -309,6 +309,62 @@ class HierarchicalClassAndTypeAliasCommonizationTest : AbstractInlineSourcesComm ) } + fun `test parameters`() { + val result = commonize { + outputTarget("(a, b)") + + simpleSingleSourceTarget( + "a", """ + class X + fun useX(x: X) = Unit + """.trimIndent() + ) + + simpleSingleSourceTarget( + "b", """ + class B + typealias X = B + fun useX(x: X) = Unit + """.trimIndent() + ) + } + + result.assertCommonized( + "(a, b)", """ + expect class X expect constructor() + expect fun useX(x: X) + """.trimIndent() + ) + } + + fun `test parameters with non-commonized TA expanding to a commonized type`() { + val result = commonize { + outputTarget("(a, b)") + + simpleSingleSourceTarget( + "a", """ + class X + fun useX(x: X) = Unit + """.trimIndent() + ) + + simpleSingleSourceTarget( + "b", """ + class X + typealias B = X + fun useX(x: B) = Unit + """.trimIndent() + ) + } + + result.assertCommonized( + "(a, b)", """ + expect class X expect constructor() + expect fun useX(x: X) + """.trimIndent() + ) + } + fun `test parameterized types`() { val result = commonize { outputTarget("(a, b)", "(c, d)", "(a, b, c, d)")