Files
kotlin-fork/compiler/testData/diagnostics/tests/smartCasts/varnotnull/varCapturedInInlineClosure.kt
T

17 lines
475 B
Kotlin
Vendored

// See also KT-7186 and forEachSafe.kt
// Custom `forEach` has no contract but the lambda is inline (not crossinline) so smart cast is safe
inline fun IntArray.forEachIndexed( op: (i: Int, value: Int) -> Unit) {
for (i in 0..this.size)
op(i, this[i])
}
fun max(a: IntArray): Int? {
var maxI: Int? = null
a.forEachIndexed { i, value ->
if (maxI == null || value >= a[<!SMARTCAST_IMPOSSIBLE!>maxI<!>])
maxI = i
}
return maxI
}