Get nested builder inference sessions properly, across delegated inference sessions too

^KT-48445 Fixed
This commit is contained in:
Victor Petukhov
2021-09-06 18:30:41 +03:00
parent 1d9ffebad6
commit 810aee60db
4 changed files with 67 additions and 40 deletions
@@ -14,39 +14,39 @@ internal class TowerDataElementsForName() {
}
}
//internal class TowerDataElementsForName2() {
// @OptIn(ExperimentalStdlibApi::class)
// val reversedFilteredLocalScopes = buildList {
// val reversedFilteredLocalScopes by lazy(LazyThreadSafetyMode.NONE) {
// @OptIn(ExperimentalStdlibApi::class)
// buildList {
// for (i in lastIndex downTo 0) {
// add("")
// }
// }
// }
// add(reversedFilteredLocalScopes)
// }
//}
//
//internal class TowerDataElementsForName3() {
// val reversedFilteredLocalScopes by lazy(LazyThreadSafetyMode.NONE) {
// @OptIn(ExperimentalStdlibApi::class)
// buildList l1@ {
// for (i in lastIndex downTo 0) {
// val reversedFilteredLocalScopes by lazy(LazyThreadSafetyMode.NONE) {
// @OptIn(ExperimentalStdlibApi::class)
// buildList {
// for (i in lastIndex downTo 0) {
// add("")
// this@l1.add("")
// }
// }
// }
// }
// }
// }
//}
internal class TowerDataElementsForName2() {
@OptIn(ExperimentalStdlibApi::class)
val reversedFilteredLocalScopes = buildList {
val reversedFilteredLocalScopes by lazy(LazyThreadSafetyMode.NONE) {
@OptIn(ExperimentalStdlibApi::class)
buildList {
for (i in lastIndex downTo 0) {
add("")
}
}
}
add(reversedFilteredLocalScopes)
}
}
internal class TowerDataElementsForName3() {
val reversedFilteredLocalScopes by lazy(LazyThreadSafetyMode.NONE) {
@OptIn(ExperimentalStdlibApi::class)
buildList l1@ {
for (i in lastIndex downTo 0) {
val reversedFilteredLocalScopes by lazy(LazyThreadSafetyMode.NONE) {
@OptIn(ExperimentalStdlibApi::class)
buildList {
for (i in lastIndex downTo 0) {
add("")
this@l1.add("")
}
}
}
}
}
}
}
// mute due to KT-48633
//internal class TowerDataElementsForName4() {
@@ -68,8 +68,8 @@ internal class TowerDataElementsForName() {
fun box(): String {
val x1 = TowerDataElementsForName().reversedFilteredLocalScopes
// val x2 = TowerDataElementsForName2().reversedFilteredLocalScopes
// val x3 = TowerDataElementsForName3().reversedFilteredLocalScopes
val x2 = TowerDataElementsForName2().reversedFilteredLocalScopes
val x3 = TowerDataElementsForName3().reversedFilteredLocalScopes
// val x4 = TowerDataElementsForName4().reversedFilteredLocalScopes
return "OK"
}