package lib1 interface I { fun foo(): String = "I v2" val bar: String get() = "I v2" } interface J { fun foo(): String = "J v2" val bar: String get() = "J v2" } interface Default { fun foo(): String = "Default v2" val bar: String get() = "Default v2" } interface RemovedDefault { fun foo(): String val bar: String } open class Unrelated { fun foo(): String = "Unrelated v2" val bar: String = "Unrelated v2" } abstract class AbstractUnrelated { abstract fun foo(): String abstract val bar: String } open class WithFakeOverride : I open class WithRealOverride : I { override fun foo() = "WithRealOverride v2" override val bar = "WithRealOverride v2" }