blob: f0a01ae08f6ba67769a674abd44e1e91dcf3d8ca [file]
// LANGUAGE: +AllowSuperCallToJavaInterface
// TARGET_BACKEND: JVM
// IGNORE_BACKEND_K1: ANY
// FILE: Base.java
public interface Base {
default int f() { return 4; }
}
// FILE: Derived.kt
interface Derived : Base {
fun ff(): Int = super.f()
}
class DerivedImpl : Derived
// FILE: WithOverride.kt
interface WithOverride : Base {
override fun f(): Int = 5
}
interface DerivedWithOverride : WithOverride {
fun ff(): Int = super.f()
}
class DerivedWithOverrideImpl : DerivedWithOverride
// FILE: Mid.kt
interface Mid : Base
interface DerivedWithMid : Mid {
fun ff(): Int = super.f()
}
class DerivedWithMidImpl : DerivedWithMid
// FILE: box.kt
fun box(): String {
if (DerivedImpl().ff() != 4) return "Fail DerivedImpl"
if (DerivedWithOverrideImpl().ff() != 5) return "Fail DerivedWithOverrideImpl"
if (DerivedWithMidImpl().ff() != 4) return "Fail DerivedWithMidImpl"
return "OK"
}