Files
2024-02-16 10:19:38 +00:00

39 lines
672 B
Kotlin
Vendored

package test
class Foo<T : Any?> {
inner class Inner<P : Any?> {
val a: T
field = a
get
val b: P
field = b
get
constructor(a: T, b: P) /* primary */ {
super/*Any*/()
/* <init>() */
}
}
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
}
fun box(): String {
val z: Foo<String> = Foo<String>()
val foo: Inner<String, String> = foo<String, String>(a = "O", b = "K", x = z::<init>/*<String>()*/)
return foo.<get-a>().plus(other = foo.<get-b>())
}
inline fun <A : Any?, B : Any?> foo(a: A, b: B, x: Function2<A, B, Inner<B, A>>): Inner<B, A> {
return x.invoke(p1 = a, p2 = b)
}