FIR: fix capturing on intersection types #KT-48109 Fixed

This commit is contained in:
Mikhail Glukhikh
2021-08-05 14:05:24 +03:00
parent a04913a197
commit a21d281c19
9 changed files with 99 additions and 26 deletions
@@ -20,7 +20,7 @@ fun <X> InvBase<X>.myLastInv(): X = TODO()
fun <T> fooInv(x: InvBase<T>) {
if (x is InvDerived<*>) {
val l: T = <!INITIALIZER_TYPE_MISMATCH!>x.<!INAPPLICABLE_CANDIDATE!>myLastInv<!>()<!> // required T, found Cap(*). Only in NI
val l: T = <!INITIALIZER_TYPE_MISMATCH, TYPE_MISMATCH!>x.myLastInv()<!> // required T, found Cap(*). Only in NI
}
}
@@ -36,7 +36,7 @@ fun Number.num() {}
fun main(b: Base<out Number>) {
b.foo().num()
if (b is Derived<*>) {
b.<!INAPPLICABLE_CANDIDATE!>foo<!>().<!INAPPLICABLE_CANDIDATE!>num<!>()
b.<!INAPPLICABLE_CANDIDATE!>baz<!>().length
b.foo().<!INAPPLICABLE_CANDIDATE!>num<!>()
b.baz().length
}
}