Files
kotlin-fork/compiler/testData/codegen/box/ranges/javaInterop/javaArrayOfInheritedNotNull.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

30 lines
779 B
Kotlin
Vendored

// !LANGUAGE: +StrictJavaNullabilityAssertions
// TARGET_BACKEND: JVM
// WITH_STDLIB
// FILE: box.kt
import kotlin.test.*
fun box(): String {
val actualValues = mutableListOf<Int>()
for (i in JImpl().arrayOfNotNull()) {
actualValues += i
}
assertEquals(listOf(42, -42), actualValues)
return "OK"
}
interface J {
fun arrayOfNotNull(): Array<Int>
}
// FILE: JImpl.java
public class JImpl implements J {
// The only way to get @EnhancedNullability on the array element type (Int) is to override a Kotlin function that
// returns `Array<Int>` (where Int is not nullable). `@NotNull Integer[]` makes the array not nullable, not String.
@Override
public Integer[] arrayOfNotNull() {
return new Integer[] { 42, -42 };
}
}