Files
kotlin-fork/compiler/testData/codegen/box/ranges/javaInterop/javaCollectionOfExplicitNullable.kt
T
Juan Chen 9dd8eda1c9 [FIR]: fix library methods in packages
Library methods such as 'listOf' are resolved
to have the package fragments as their parents,
but JVM expects their containing file classes as parents.
This fix generates those file classes and
uses them as parent replacements for such library methods.
2020-02-20 14:24:02 +03:00

43 lines
1.1 KiB
Kotlin
Vendored

// !LANGUAGE: +StrictJavaNullabilityAssertions
// TARGET_BACKEND: JVM
// WITH_RUNTIME
// JVM_TARGET: 1.8
// FILE: box.kt
import kotlin.test.*
fun box(): String {
val actualValues = mutableListOf<Int?>()
for (i in J.listOfNullable()) {
actualValues += i
}
assertEquals(listOf(42, null), actualValues)
return "OK"
}
// FILE: J.java
import java.util.*;
import org.jetbrains.annotations.*;
public class J {
public static List<@Nullable Integer> listOfNullable() {
List<Integer> list = new ArrayList<>();
list.add(42);
list.add(null);
return list;
}
}
// FILE: Nullable.java
package org.jetbrains.annotations;
import java.lang.annotation.*;
// org.jetbrains.annotations used in the compiler is version 13, whose @Nullable does not support the TYPE_USE target (version 15 does).
// We're using our own @org.jetbrains.annotations.Nullable for testing purposes.
@Documented
@Retention(RetentionPolicy.CLASS)
@Target({ElementType.METHOD, ElementType.FIELD, ElementType.PARAMETER, ElementType.LOCAL_VARIABLE, ElementType.TYPE_USE})
public @interface Nullable {
}