FIR: when translating raw types, reuse computed upper bounds

Also, don't bother ensuring that the upper bound has the same tree size
as the lower bound; the new index computation can handle it when some
subtrees of the lower bound are replaced by star projections in the
upper bound.
This commit is contained in:
pyos
2021-08-12 20:04:43 +02:00
committed by teamcityserver
parent 4654bdb199
commit e385484994
6 changed files with 72 additions and 137 deletions
@@ -8,5 +8,5 @@ class Foo<P1 : Boo<P2, P3, P4>, P2 : Boo<P1, P3, P4>, P3 : Boo<P1, P2, P4>, P4 :
// FILE: main.kt
fun main() {
val x = <!DEBUG_INFO_EXPRESSION_TYPE("Foo<Boo<*, *, *>, Boo<*, *, *>, Boo<*, *, *>, Boo<*, *, *>>..Foo<out Boo<*, *, *>, out Boo<*, *, *>, out Boo<*, *, *>, out Boo<*, *, *>>?!")!>Boo.test1()<!>
val x = <!DEBUG_INFO_EXPRESSION_TYPE("Foo<Boo<*, *, *>, Boo<*, *, *>, Boo<*, *, *>, Boo<*, *, *>>..Foo<*, *, *, *>?!")!>Boo.test1()<!>
}