// 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); } }