Files
kotlin-fork/compiler/testData/diagnostics/tests/smartCasts/variables/capturedByNested.kt
T

23 lines
444 B
Kotlin
Vendored

// FIR_IDENTICAL
import kotlin.contracts.*
@Suppress("OPT_IN_USAGE_ERROR", "OPT_IN_USAGE_FUTURE_ERROR")
fun exactlyOnce(f: () -> Unit) {
contract {
callsInPlace(f, InvocationKind.EXACTLY_ONCE)
}
f()
}
fun test() {
var s: String? = ""
if (s != null) {
val block: () -> Unit
exactlyOnce {
block = { s = null }
}
block()
<!SMARTCAST_IMPOSSIBLE!>s<!>.length
}
}