[FIR] Implement new completion mode calculator

Note that `testDelegates` now fails due to KT-37638 and
    `testSimpleIn` fails due to problems with type parameters
    of inner classes
This commit is contained in:
Dmitriy Novozhilov
2020-03-20 15:20:09 +03:00
parent ea02855ba6
commit 5f9f01fe4e
14 changed files with 340 additions and 111 deletions
@@ -2,7 +2,7 @@ interface Out<out E>
fun <X> id(x: Out<X>): Out<X> = TODO()
fun <F : Any> foo(computable: Out<F?>)
fun <F : Any> foo(computable: Out<F?>) {}
fun <T : Any> bar(computable: Out<T?>) {
foo(id(computable))
@@ -4,7 +4,8 @@ FILE: definetelyNotNullForTypeParameter.kt
public final fun <X> id(x: R|Out<X>|): R|Out<X>| {
^id R|kotlin/TODO|()
}
public final fun <F : R|kotlin/Any|> foo(computable: R|Out<F?>|): R|kotlin/Unit|
public final fun <T : R|kotlin/Any|> bar(computable: R|Out<T?>|): R|kotlin/Unit| {
R|/foo|<R|T|>(R|/id|<R|T?|>(R|<local>/computable|))
public final fun <F : R|kotlin/Any|> foo(computable: R|Out<F?>|): R|kotlin/Unit| {
}
public final fun <T : R|kotlin/Any|> bar(computable: R|Out<T?>|): R|kotlin/Unit| {
R|/foo|<R|T?!!|>(R|/id|<R|T?|>(R|<local>/computable|))
}