[Commonizer] Implement tests for 'crossed' type aliases
^KT-48288
This commit is contained in:
committed by
Space
parent
1fca19258d
commit
7bf62ab159
+81
@@ -642,4 +642,85 @@ class HierarchicalClassAndTypeAliasCommonizationTest : AbstractInlineSourcesComm
|
||||
""".trimIndent()
|
||||
)
|
||||
}
|
||||
|
||||
fun `test 'crossed' type aliases - 0`() {
|
||||
val result = commonize {
|
||||
outputTarget("(a, b)")
|
||||
simpleSingleSourceTarget(
|
||||
"a", """
|
||||
class X
|
||||
class Y
|
||||
|
||||
typealias A = X
|
||||
typealias B = Y
|
||||
|
||||
fun x(x: A)
|
||||
fun x(x: B)
|
||||
""".trimIndent()
|
||||
)
|
||||
|
||||
simpleSingleSourceTarget(
|
||||
"b", """
|
||||
class X
|
||||
class Y
|
||||
|
||||
typealias A = Y // NOTE: Y & X are swapped
|
||||
typealias B = X // NOTE: Y & X are swapped
|
||||
|
||||
fun x(x: A)
|
||||
fun x(x: B)
|
||||
""".trimIndent()
|
||||
)
|
||||
}
|
||||
|
||||
result.assertCommonized(
|
||||
"(a, b)", """
|
||||
expect class X()
|
||||
expect class Y()
|
||||
expect class A()
|
||||
expect class B()
|
||||
expect fun x(x: A)
|
||||
expect fun x(x: B)
|
||||
""".trimIndent()
|
||||
)
|
||||
}
|
||||
|
||||
fun `test 'crossed' type aliases - 1`() {
|
||||
val result = commonize {
|
||||
outputTarget("(a, b)")
|
||||
simpleSingleSourceTarget(
|
||||
"a", """
|
||||
class X
|
||||
class Y
|
||||
|
||||
typealias A = X
|
||||
typealias B = Y
|
||||
|
||||
fun x(x: A)
|
||||
""".trimIndent()
|
||||
)
|
||||
|
||||
simpleSingleSourceTarget(
|
||||
"b", """
|
||||
class X
|
||||
class Y
|
||||
|
||||
typealias A = Y // NOTE: Y & X are swapped
|
||||
typealias B = X // NOTE: Y & X are swapped
|
||||
|
||||
fun x(x: A)
|
||||
""".trimIndent()
|
||||
)
|
||||
}
|
||||
|
||||
result.assertCommonized(
|
||||
"(a, b)", """
|
||||
expect class X()
|
||||
expect class Y()
|
||||
expect class A()
|
||||
expect class B()
|
||||
expect fun x(x: A)
|
||||
""".trimIndent()
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user