// TARGET_BACKEND: JVM_IR // IGNORE_BACKEND_K2: JVM_IR // ISSUE: KT-61941 // WITH_STDLIB // MODULE: m1 // FILE: m1/THash.java package m1; public class THash { public int size() { return 1; } } // FILE: m1/TObjectHash.java package m1; public class TObjectHash extends THash {} // FILE: m1/THashSet.java package m1; import java.util.*; public class THashSet extends TObjectHash implements Set { public Iterator iterator() { return null; } public boolean isEmpty() { return false; } public boolean contains(Object o) { return false; } public Object[] toArray() { return new Object[1]; } public T[] toArray(T[] a) { throw new RuntimeException(); } public boolean add(T e) { return false; } public boolean remove(Object o) { return false; } public boolean containsAll(Collection c) { return false; } public boolean addAll(Collection c) { return false; } public boolean retainAll(Collection c) { return false; } public boolean removeAll(Collection c) { return false; } public void clear() {} } // MODULE: m2(m1) // FILE: box.kt package m2 import m1.THashSet interface HeaderSet : Set class MutableHeaderSet : HeaderSet, MutableSet, THashSet() fun box(): String { val size1 = THashSet().size val size2 = MutableHeaderSet().size return if (size1 == 1 && size2 == 1) "OK" else "$size1/$size2" }