// 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 { 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 m) { } @Override public void clear() { } @Override public Set keySet() { return null; } @Override public Collection values() { return null; } @Override public Set> 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()) }