Basic support of partially specified type arguments though a new underscore operator for type arguments

^KT-13394
This commit is contained in:
Victor Petukhov
2021-10-21 14:23:25 +03:00
parent e057831f7f
commit b69fb6779f
35 changed files with 1212 additions and 9 deletions
@@ -0,0 +1,10 @@
// WITH_RUNTIME
fun <K, T> foo(x: (K) -> T): Pair<K, T> = TODO()
class Foo<K>
fun main() {
val x = foo<Int, Foo<_>> { it.toFloat() }
}
@@ -0,0 +1,10 @@
// WITH_RUNTIME
fun <K, T> foo(x: (K) -> T): Pair<K, T> = TODO()
class Foo<K>
fun main() {
val x = foo<Int, Foo<<!UNRESOLVED_REFERENCE!>_<!>>> { <!TYPE_MISMATCH!>it.toFloat()<!> }
}
@@ -0,0 +1,11 @@
package
public fun </*0*/ K, /*1*/ T> foo(/*0*/ x: (K) -> T): kotlin.Pair<K, T>
public fun main(): kotlin.Unit
public final class Foo</*0*/ K> {
public constructor Foo</*0*/ K>()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}