Substitute stub type variables in local variable descriptors

This commit is contained in:
Victor Petukhov
2021-05-26 11:22:45 +03:00
parent 758eb8f851
commit e942052eb6
9 changed files with 478 additions and 107 deletions
@@ -26,41 +26,41 @@ fun <R1 : R2, R2> build4(x: R2, @BuilderInference block: TestInterface<R1>.() ->
fun test(a: String?) {
val ret1 = build {
emit(1)
get()?.equals("")
emit("1")
// get()?.equals("")
val x = get()
x?.equals("")
x ?: 1
x!!
""
}
val ret2 = build2 {
emit(1)
get()?.equals("")
val x = get()
x?.equals("")
x ?: 1
x!!
""
}
val ret3 = build3 {
emit(1)
get()?.equals("")
val x = get()
x?.equals("")
x ?: 1
x!!
""
}
val ret4 = build4(1) {
emit(1)
get()?.equals("")
val x = get()
x?.equals("")
x ?: 1
x!!
// x?.equals("")
x ?: "1"
// x!!
""
}
// val ret2 = build2 {
// emit(1)
// get()?.equals("")
// val x = get()
// x?.equals("")
// x ?: 1
// x!!
// ""
// }
// val ret3 = build3 {
// emit(1)
// get()?.equals("")
// val x = get()
// x?.equals("")
// x ?: 1
// x!!
// ""
// }
// val ret4 = build4(1) {
// emit(1)
// get()?.equals("")
// val x = get()
// x?.equals("")
// x ?: 1
// x!!
// ""
// }
}
fun box(): String {
@@ -22,3 +22,5 @@ interface CoroutineScope
interface Flow<out T>
interface FlowCollector<in T>
fun box() = "OK"