[FIR] Infer type arguments for captured parameters of inner classes

KT-38992
This commit is contained in:
Dmitriy Novozhilov
2020-07-13 15:59:09 +03:00
parent 1c622a5a3f
commit 1ce4eca3a6
27 changed files with 316 additions and 85 deletions
@@ -14,7 +14,7 @@ class Outer<E> {
fun set(inner: Inner<out E>) {}
fun inside() {
innerFactory().checkType { <!INAPPLICABLE_CANDIDATE!>_<!><Inner<String>>() }
innerFactory().checkType { _<Inner<String>>() }
}
}
@@ -34,9 +34,9 @@ fun main() {
<!INAPPLICABLE_CANDIDATE!>checkSubtype<!><Outer<CharSequence>.Inner<CharSequence>>(outer.bar())
<!INAPPLICABLE_CANDIDATE!>checkSubtype<!><Outer<CharSequence>.Inner<CharSequence>>(outer.Inner())
outer.<!INAPPLICABLE_CANDIDATE!>set<!>(outer.bar())
outer.<!INAPPLICABLE_CANDIDATE!>set<!>(outer.Inner())
outer.set(outer.bar())
outer.set(outer.Inner())
val x: Outer<String>.Inner<String> = factoryString()
outer.<!INAPPLICABLE_CANDIDATE!>set<!>(x)
outer.set(x)
}