| // TARGET_BACKEND: JVM | |
| class MyMap<K, V>: Map<K, V> { | |
| override val size: Int get() = 0 | |
| override fun isEmpty(): Boolean = true | |
| override fun containsKey(key: K): Boolean = false | |
| override fun containsValue(value: V): Boolean = false | |
| override fun get(key: K): V? = null | |
| override val keys: Set<K> get() = throw UnsupportedOperationException() | |
| override val values: Collection<V> get() = throw UnsupportedOperationException() | |
| override val entries: Set<Map.Entry<K, V>> get() = throw UnsupportedOperationException() | |
| } | |
| fun expectUoe(block: () -> Unit) { | |
| try { | |
| block() | |
| throw AssertionError() | |
| } catch (e: UnsupportedOperationException) { | |
| } | |
| } | |
| fun box(): String { | |
| val myMap = MyMap<String, Int>() | |
| val map = myMap as java.util.Map<String, Int> | |
| expectUoe { map.put("", 1) } | |
| expectUoe { map.remove("") } | |
| expectUoe { map.putAll(myMap) } | |
| expectUoe { map.clear() } | |
| return "OK" | |
| } | |