interface I1 : MutableSet { override fun contains(o: R): Boolean { throw UnsupportedOperationException() } override fun containsAll(c: Collection): Boolean { throw UnsupportedOperationException() } } interface I2 : MutableSet { override fun contains(o: String): Boolean { throw UnsupportedOperationException() } override fun containsAll(c: Collection): Boolean { throw UnsupportedOperationException() } } abstract class A : I2 // 1 public final bridge contains\(Ljava/lang/Object;\)Z // 1 public final bridge remove\(Ljava/lang/Object;\)Z /* 2 INSTANCEOF: one for 'remove', one for 'contains' type-safe bridges of A There should be no bridges in interfaces */ // 2 INSTANCEOF java/lang/String