// TARGET_BACKEND: JVM
// WITH_STDLIB
// FILE: kt40305.kt
class ListImpl(private val list: List): List {
override val size: Int get() = list.size
override fun contains(element: A): Boolean = list.contains(element)
override fun containsAll(elements: Collection): Boolean = list.containsAll(elements)
override fun get(index: Int): A = list.get(index)
override fun indexOf(element: A): Int = list.indexOf(element)
override fun isEmpty(): Boolean = list.isEmpty()
override fun iterator(): Iterator = list.iterator()
override fun lastIndexOf(element: A): Int = list.lastIndexOf(element)
override fun listIterator(): ListIterator = list.listIterator()
override fun listIterator(index: Int): ListIterator = list.listIterator(index)
override fun subList(fromIndex: Int, toIndex: Int): List = list.subList(fromIndex, toIndex)
}
fun box(): String {
try {
J.testAddAllNull(ListImpl(listOf()))
} catch (e: UnsupportedOperationException) {
return "OK"
}
return "J.testAddAllNull(ListImpl(...)) should throw UnsupportedOperationException"
}
// FILE: J.java
import java.util.List;
public class J {
public static void testAddAllNull(List list) {
list.addAll(null);
}
}