| // TARGET_BACKEND: JVM |
| // JVM_TARGET: 1.8 |
| |
| // FILE: Int2IntFunction.java |
| public interface Int2IntFunction { |
| boolean containsKey(int key); |
| |
| @Deprecated |
| default boolean containsKey(Object key) { |
| return false; |
| } |
| } |
| // FILE: Int2IntMap.java |
| public interface Int2IntMap extends Int2IntFunction, java.util.Map<Integer, Integer> { |
| boolean containsKey(int var1); |
| |
| @Deprecated |
| default boolean containsKey(Object key) { |
| return Int2IntFunction.super.containsKey(key); |
| } |
| } |
| |
| // FILE: Int2IntMapImpl.java |
| import java.util.Collection; |
| import java.util.Map; |
| import java.util.Set; |
| |
| public class Int2IntMapImpl implements Int2IntMap { |
| @Override |
| public boolean containsKey(int var1) { |
| return var1 == 56; |
| } |
| |
| @Override |
| public int size() { |
| return 0; |
| } |
| |
| @Override |
| public boolean isEmpty() { |
| return false; |
| } |
| |
| @Override |
| public boolean containsValue(Object value) { |
| return false; |
| } |
| |
| @Override |
| public Integer get(Object key) { |
| return null; |
| } |
| |
| @Override |
| public Integer put(Integer key, Integer value) { |
| return null; |
| } |
| |
| @Override |
| public Integer remove(Object key) { |
| return null; |
| } |
| |
| @Override |
| public void putAll(Map<? extends Integer, ? extends Integer> m) { |
| |
| } |
| |
| @Override |
| public void clear() { |
| |
| } |
| |
| @Override |
| public Set<Integer> keySet() { |
| return null; |
| } |
| |
| @Override |
| public Collection<Integer> values() { |
| return null; |
| } |
| |
| @Override |
| public Set<Entry<Integer, Integer>> entrySet() { |
| return null; |
| } |
| } |
| |
| |
| // FILE: m.kt |
| fun foo(x: Int2IntMap): String { |
| if (!x.containsKey(56)) return "fail 1" |
| if (x.containsKey(239)) return "fail 1" |
| return "OK" |
| } |
| |
| fun box(): String { |
| return foo(Int2IntMapImpl()) |
| } |