Use separate constraint position during call substitution as part of inferring postponed type variables
^KT-47052 Fixed ^KT-47082 Fixed
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
// WITH_RUNTIME
|
||||
// !USE_EXPERIMENTAL: 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"
|
||||
Reference in New Issue
Block a user