| // SKIP_JDK6 |
| // TARGET_BACKEND: JVM |
| // FULL_JDK |
| |
| class MapWithBadDefaults : HashMap<String, String>() { |
| 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<String, String>) : MutableMap<String, String> 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") |
| } |
| |