[Commonizer] Short-circuiting of type aliases

^KT-41220
This commit is contained in:
Dmitriy Dolovov
2020-08-19 18:45:30 +07:00
parent 8a84af8a6f
commit d40bca4143
11 changed files with 91 additions and 40 deletions
@@ -2,7 +2,12 @@ expect class A()
// Lifted up type aliases:
typealias B = A // class at the RHS
typealias C = B // TA at the RHS
typealias C = A // TA at the RHS, expanded to the same class
typealias C2 = A // 2x TA at the RHS, expanded to the same class
typealias C3 = A // 3x TA at the RHS, expanded to the same class
typealias D = A // class/TA expanded to the same class at the RHS
typealias E = A // different TAs expanded to the same class at the RHS
typealias F = List<String> // parameterized type at the RHS
typealias H<T> = List<T> // TA with own parameters
@@ -21,5 +26,5 @@ expect class T
// Nullability:
typealias U = A // same nullability of the RHS class
expect class V // different nullability of the RHS class
typealias W = U // same nullability of the RHS TA
typealias W = A // same nullability of the RHS TA
typealias Y = V // TA at the RHS with the different nullability of own RHS
@@ -1,9 +1,6 @@
actual class A actual constructor()
// Lifted up type aliases:
typealias D = B // class/TA at the RHS
typealias E = C // different TAs at the RHS
typealias G = List<Int> // different parameterized types at the RHS
typealias I<T> = List<T> // TAs with own parameters with different names
@@ -1,9 +1,6 @@
actual class A actual constructor()
// Lifted up type aliases:
typealias D = A // class/TA at the RHS
typealias E = B // different TAs at the RHS
typealias G = List<String> // different parameterized types at the RHS
typealias I<R> = List<R> // TAs with own parameters with different names
@@ -2,10 +2,12 @@ class A
// Lifted up type aliases:
typealias B = A // class at the RHS
typealias C = B // TA at the RHS
typealias C = B // TA at the RHS, expanded to the same class
typealias C2 = C // 2x TA at the RHS, expanded to the same class
typealias C3 = C2 // 3x TA at the RHS, expanded to the same class
typealias D = B // class/TA at the RHS
typealias E = C // different TAs at the RHS
typealias D = B // class/TA expanded to the same class at the RHS
typealias E = C // different TAs expanded to the same class at the RHS
typealias F = List<String> // parameterized type at the RHS
typealias G = List<Int> // different parameterized types at the RHS
@@ -2,10 +2,12 @@ class A
// Lifted up type aliases:
typealias B = A // class at the RHS
typealias C = B // TA at the RHS
typealias C = B // TA at the RHS, expanded to the same class
typealias C2 = C // 2x TA at the RHS, expanded to the same class
typealias C3 = C2 // 3x TA at the RHS, expanded to the same class
typealias D = A // class/TA at the RHS
typealias E = B // different TAs at the RHS
typealias D = A // class/TA expanded to the same class at the RHS
typealias E = B // different TAs expanded to the same class at the RHS
typealias F = List<String> // parameterized type at the RHS
typealias G = List<String> // different parameterized types at the RHS