// IGNORE_BACKEND: JVM_IR open class A0 : MutableList { override fun add(element: E): Boolean { throw UnsupportedOperationException() } override fun add(index: Int, element: E) { throw UnsupportedOperationException() } override fun addAll(index: Int, elements: Collection): Boolean { throw UnsupportedOperationException() } override fun addAll(elements: Collection): Boolean { throw UnsupportedOperationException() } override fun clear() { throw UnsupportedOperationException() } override fun listIterator(): MutableListIterator { throw UnsupportedOperationException() } override fun listIterator(index: Int): MutableListIterator { throw UnsupportedOperationException() } override fun remove(element: E): Boolean { throw UnsupportedOperationException() } override fun removeAll(elements: Collection): Boolean { throw UnsupportedOperationException() } override fun removeAt(index: Int): E { throw UnsupportedOperationException() } override fun retainAll(elements: Collection): Boolean { throw UnsupportedOperationException() } override fun set(index: Int, element: E): E { throw UnsupportedOperationException() } override fun subList(fromIndex: Int, toIndex: Int): MutableList { throw UnsupportedOperationException() } override val size: Int get() = throw UnsupportedOperationException() override fun contains(element: E): Boolean { throw UnsupportedOperationException() } override fun containsAll(elements: Collection): Boolean { throw UnsupportedOperationException() } override fun get(index: Int): E { throw UnsupportedOperationException() } override fun indexOf(element: E): Int { throw UnsupportedOperationException() } override fun isEmpty(): Boolean { throw UnsupportedOperationException() } override fun lastIndexOf(element: E): Int { throw UnsupportedOperationException() } override fun iterator(): MutableIterator { throw UnsupportedOperationException() } } class A1() : A0() { override fun removeAt(p0: Int): String = "abc" } class A2 : A0()