Propagate inference session into declaration analyzers
It prevents missing inference session for local declaration (local functions, local classes or objects) ^KT-44801 Fixed
This commit is contained in:
+34
@@ -0,0 +1,34 @@
|
||||
// WITH_RUNTIME
|
||||
|
||||
import kotlin.experimental.ExperimentalTypeInference
|
||||
|
||||
interface Callback {
|
||||
fun onSuccess()
|
||||
}
|
||||
|
||||
public interface SendChannelX<in E> {
|
||||
public fun close(cause: Throwable? = null): Boolean
|
||||
}
|
||||
|
||||
public interface ProducerScopeX<in E> {
|
||||
public val channel: SendChannelX<E>
|
||||
fun foo(x: E)
|
||||
}
|
||||
|
||||
public class FlowX<out T> {}
|
||||
|
||||
@OptIn(ExperimentalTypeInference::class)
|
||||
public fun <T> callbackFlowX(@BuilderInference block: ProducerScopeX<T>.() -> Unit): FlowX<T> = FlowX()
|
||||
|
||||
fun foo(): FlowX<String> = callbackFlowX {
|
||||
object : Callback {
|
||||
override fun onSuccess() {
|
||||
channel.close()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
foo()
|
||||
return "OK"
|
||||
}
|
||||
Reference in New Issue
Block a user