c7435ba760
We are going to deprecate `WITH_RUNTIME` directive. The main reason behind this change is that `WITH_STDLIB` directive better describes its meaning, specifically it will add kotlin stdlib to test's classpath.
20 lines
471 B
Kotlin
Vendored
20 lines
471 B
Kotlin
Vendored
// TARGET_BACKEND: JVM
|
|
// WITH_STDLIB
|
|
// !OPT_IN: kotlin.experimental.ExperimentalTypeInference
|
|
|
|
import kotlin.experimental.ExperimentalTypeInference
|
|
|
|
fun <E> produce(@BuilderInference block: Derived<E>.() -> Unit): E = null as E
|
|
|
|
interface Derived<in E> : Base<E>
|
|
|
|
interface Base<in E>
|
|
|
|
interface Receiver<out E>
|
|
|
|
fun <E, C : Base<E>> Receiver<E>.toChannel(destination: C): C = null as C
|
|
|
|
fun <R> foo(r: Receiver<R>): R = produce { r.toChannel(this) }
|
|
|
|
fun box() = "OK"
|