Files
kotlin-fork/compiler/testData/codegen/box/inference/builderInference/kt48445.kt
T
Ivan Kylchik c7435ba760 Replace all occurrences of WITH_RUNTIME with WITH_STDLIB
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.
2021-11-17 15:26:38 +03:00

75 lines
2.3 KiB
Kotlin
Vendored

// IGNORE_BACKEND: WASM
// !LANGUAGE: +UnrestrictedBuilderInference
// IGNORE_BACKEND_FIR: JVM_IR
// WITH_STDLIB
internal class TowerDataElementsForName() {
val reversedFilteredLocalScopes by lazy(LazyThreadSafetyMode.NONE) {
@OptIn(ExperimentalStdlibApi::class)
buildList {
for (i in lastIndex downTo 0) {
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("")
}
}
}
}
}
}
}
//internal class TowerDataElementsForName4() {
// @OptIn(ExperimentalStdlibApi::class)
// val reversedFilteredLocalScopes = buildList l1@ {
// class Foo {
// val reversedFilteredLocalScopes by lazy(LazyThreadSafetyMode.NONE) {
// @OptIn(ExperimentalStdlibApi::class)
// buildList {
// for (i in lastIndex downTo 0) {
// add("")
// this@l1.add("")
// }
// }
// }
// }
// }
//}
fun box(): String {
val x1 = TowerDataElementsForName().reversedFilteredLocalScopes
val x2 = TowerDataElementsForName2().reversedFilteredLocalScopes
val x3 = TowerDataElementsForName3().reversedFilteredLocalScopes
// val x4 = TowerDataElementsForName4().reversedFilteredLocalScopes
return "OK"
}