// TARGET_BACKEND: JVM // FILE: J.java import java.util.*; public class J implements Container { final public String removeAt(int index) { return "abc"; } } // FILE: test.kt interface Container { fun removeAt(x: Int): String } class A : J(), MutableList { override fun isEmpty(): Boolean { throw UnsupportedOperationException() } override val size: Int get() = throw UnsupportedOperationException() override fun contains(element: String): Boolean { throw UnsupportedOperationException() } override fun containsAll(elements: Collection): Boolean { throw UnsupportedOperationException() } override fun get(index: Int): String { throw UnsupportedOperationException() } override fun indexOf(element: String): Int { throw UnsupportedOperationException() } override fun lastIndexOf(element: String): Int { throw UnsupportedOperationException() } override fun add(element: String): Boolean { throw UnsupportedOperationException() } override fun remove(element: String): Boolean { throw UnsupportedOperationException() } override fun addAll(elements: Collection): Boolean { throw UnsupportedOperationException() } override fun addAll(index: Int, elements: Collection): Boolean { throw UnsupportedOperationException() } override fun removeAll(elements: Collection): Boolean { throw UnsupportedOperationException() } override fun retainAll(elements: Collection): Boolean { throw UnsupportedOperationException() } override fun clear() { throw UnsupportedOperationException() } override fun set(index: Int, element: String): String { throw UnsupportedOperationException() } override fun add(index: Int, element: String) { throw UnsupportedOperationException() } override fun listIterator(): MutableListIterator { throw UnsupportedOperationException() } override fun listIterator(index: Int): MutableListIterator { throw UnsupportedOperationException() } override fun subList(fromIndex: Int, toIndex: Int): MutableList { throw UnsupportedOperationException() } override fun iterator(): MutableIterator { throw UnsupportedOperationException() } } fun box(): String { val a = A() if (a.removeAt(0) != "abc") return "fail 1" val l: MutableList = a if (l.removeAt(0) != "abc") return "fail 2" val anyList: MutableList = a as MutableList if (anyList.removeAt(0) != "abc") return "fail 3" val container: Container = a if (container.removeAt(0) != "abc") return "fail 4" return "OK" }