Files
kotlin-fork/compiler/testData/codegen/box/super/unqualifiedSuperWithDeeperHierarchies.kt
T

63 lines
2.2 KiB
Kotlin
Vendored

open class DeeperBase {
open fun deeperBaseFun(): String = "DeeperBase.deeperBaseFun()"
open val deeperBaseProp: String
get() = "DeeperBase.deeperBaseProp"
}
open class DeepBase : DeeperBase() {
}
interface DeeperInterface {
fun deeperInterfaceFun(): String = "DeeperInterface.deeperInterfaceFun()"
val deeperInterfaceProp: String
get() = "DeeperInterface.deeperInterfaceProp"
}
interface DeepInterface : DeeperInterface {
fun deepInterfaceFun(): String = "DeepInterface.deepInterfaceFun()"
}
class DeepDerived : DeepBase(), DeepInterface {
override fun deeperBaseFun(): String = "DeepDerived.deeperBaseFun()"
override val deeperBaseProp: String
get() = "DeepDerived.deeperBaseProp"
override fun deeperInterfaceFun(): String = "DeepDerived.deeperInterfaceFun()"
override val deeperInterfaceProp: String
get() = "DeepDerived.deeperInterfaceProp"
override fun deepInterfaceFun(): String = "DeepDerived.deepInterfaceFun()"
fun callsSuperDeeperBaseFun(): String = super.deeperBaseFun()
fun getsSuperDeeperBaseProp(): String = super.deeperBaseProp
fun callsSuperDeepInterfaceFun(): String = super.deepInterfaceFun()
fun callsSuperDeeperInterfaceFun(): String = super.deeperInterfaceFun()
fun getsSuperDeeperInterfaceProp(): String = super.deeperInterfaceProp
}
fun box(): String {
val dd = DeepDerived()
val test1 = dd.callsSuperDeeperBaseFun()
if (test1 != "DeeperBase.deeperBaseFun()") return "Failed: dd.callsSuperDeeperBaseFun()==$test1"
val test2 = dd.getsSuperDeeperBaseProp()
if (test2 != "DeeperBase.deeperBaseProp") return "Failed: dd.getsSuperDeeperBaseProp()==$test2"
val test3 = dd.callsSuperDeepInterfaceFun()
if (test3 != "DeepInterface.deepInterfaceFun()") return "Failed: dd.callsSuperDeepInterfaceFun()==$test3"
val test4 = dd.callsSuperDeeperInterfaceFun()
if (test4 != "DeeperInterface.deeperInterfaceFun()") return "Failed: dd.callsSuperDeeperInterfaceFun()==$test4"
val test5 = dd.getsSuperDeeperInterfaceProp()
if (test5 != "DeeperInterface.deeperInterfaceProp") return "Failed: dd.getsSuperDeeperInterfaceProp()==$test5"
return "OK"
}