| // TARGET_BACKEND: JVM | |
| // JVM_TARGET: 1.8 | |
| // WITH_STDLIB | |
| // FULL_JDK | |
| // FILE: TestMap.java | |
| import java.util.Collection; | |
| import java.util.Map; | |
| import java.util.Set; | |
| public class TestMap implements Map<String, Object> { | |
| @Override | |
| public int size() { | |
| return 0; | |
| } | |
| @Override | |
| public boolean isEmpty() { | |
| return false; | |
| } | |
| @Override | |
| public boolean containsKey(Object key) { | |
| return false; | |
| } | |
| @Override | |
| public boolean containsValue(Object value) { | |
| return false; | |
| } | |
| @Override | |
| public Object get(Object key) { | |
| return null; | |
| } | |
| @Override | |
| public Object put(String key, Object value) { | |
| return null; | |
| } | |
| @Override | |
| public Object remove(Object key) { | |
| return null; | |
| } | |
| @Override | |
| public void putAll(Map<? extends String, ?> m) { | |
| } | |
| @Override | |
| public void clear() { | |
| } | |
| @Override | |
| public Set<String> keySet() { | |
| return null; | |
| } | |
| @Override | |
| public Collection<Object> values() { | |
| return null; | |
| } | |
| @Override | |
| public Set<Entry<String, Object>> entrySet() { | |
| return null; | |
| } | |
| } | |
| // FILE: main.kt | |
| class MyMap: TestMap() | |
| fun box(): String { | |
| val map = MyMap() | |
| if (map.remove("aaa", 42)) return "fail 1" | |
| if (map.getOrDefault("aaa", 42) != 42) return "fail 2" | |
| return "OK" | |
| } |