[NI] Resolve type variable to Nothing for TO_SUBTYPE direction.

This commit is contained in:
Stanislav Erokhin
2017-04-13 13:47:06 +03:00
parent 6e24b0f89d
commit 73cc1fdd9c
4 changed files with 32 additions and 1 deletions
@@ -0,0 +1,15 @@
// completion order here: X, Y, WHEN_VARIABLE
fun <T> List<T>.optimizeReadOnlyList() = when (size) {
0 -> emptyList() // here type variable Y will be fixed to Nothing
1 -> listOf(this[0])
else -> this
}
fun <X> listOf(<!UNUSED_PARAMETER!>element<!>: X): List<X> = TODO()
fun <Y> emptyList(): List<Y> = TODO()
fun test(l: List<String>): List<String> {
val foo = l.optimizeReadOnlyList()
return foo
}
@@ -0,0 +1,6 @@
package
public fun </*0*/ Y> emptyList(): kotlin.collections.List<Y>
public fun </*0*/ X> listOf(/*0*/ element: X): kotlin.collections.List<X>
public fun test(/*0*/ l: kotlin.collections.List<kotlin.String>): kotlin.collections.List<kotlin.String>
public fun </*0*/ T> kotlin.collections.List<T>.optimizeReadOnlyList(): kotlin.collections.List<T>