class MyMap: Map { override fun size(): Int = 0 override fun isEmpty(): Boolean = true override fun containsKey(key: Any?): Boolean = false override fun containsValue(value: Any?): Boolean = false override fun get(key: Any?): V? = null override fun keySet(): Set = throw UnsupportedOperationException() override fun values(): Collection = throw UnsupportedOperationException() override fun entrySet(): Set> = throw UnsupportedOperationException() } fun expectUoe(block: () -> Unit) { try { block() throw AssertionError() } catch (e: UnsupportedOperationException) { } } fun box(): String { val map = MyMap() as MutableMap expectUoe { map.put("", 1) } expectUoe { map.remove("") } expectUoe { map.putAll(map) } expectUoe { map.clear() } return "OK" }