Propagate inference session into declaration analyzers

It prevents missing inference session for local declaration (local functions, local classes or objects)

^KT-44801 Fixed
This commit is contained in:
Victor Petukhov
2021-02-12 13:58:27 +03:00
parent dae1f4c05d
commit 6f64fd2fec
19 changed files with 150 additions and 42 deletions
@@ -1,14 +0,0 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE -UNREACHABLE_CODE
interface Some {
fun method(): Unit
}
fun <S> elvis(nullable: S?, notNullable: S): S = TODO()
fun <R : Some> Some.doWithPredicate(predicate: (R) -> Unit): R? = TODO()
fun test(derived: Some) {
val expected: Some = derived.doWithPredicate { it.method() } ?: TODO()
val expected2: Some = elvis(derived.doWithPredicate { it.<!UNRESOLVED_REFERENCE!>method<!>() }, TODO())
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE -UNREACHABLE_CODE
interface Some {