// IGNORE_BACKEND_K2: JVM_IR, JS_IR // FIR status: NSME: Test.remove(Ljava/lang/String;Ljava/lang/String;)Z // FIR + JVM_IR: // INVOKEVIRTUAL Test.remove (Ljava/lang/String;Ljava/lang/String;)Z // => java.lang.NoSuchMethodError: Test.remove(Ljava/lang/String;Ljava/lang/String;)Z // FE1.0 + JVM_IR: // INVOKEVIRTUAL Test.remove (Ljava/lang/Object;Ljava/lang/Object;)Z // => default method in java.util.Map (as expected) // SKIP_JDK6 // TARGET_BACKEND: JVM // FULL_JDK class MapWithBadDefaults : HashMap() { override fun getOrDefault(key: String, defaultValue: String): String { throw RuntimeException("Shouldn't be executed") } override fun remove(key: String, value: String): Boolean { throw RuntimeException("Shouldn't be executed") } } class Test(map: MutableMap) : MutableMap by map fun box(): String { val test = Test(MapWithBadDefaults()) test.put("O", "K") if (!test.containsKey("O")) return "fail 1: can't find value for key 'O'" if (!test.remove("O", "K")) return "fail 2: entry wasn't removed" return test.getOrDefault("absent", "OK") }