blob: a01f37afcf8ec09403d7f2123af6def7f3edebe9 [file]
// LANGUAGE: +CompanionBlocksAndExtensions
abstract class Base {
companion {
val baseVal = "BaseVal"
fun baseFun() = "BaseFun"
}
abstract fun abstractFun(): String
}
class Concrete : Base() {
companion {
val concreteVal = "ConcreteVal"
fun concreteFun() = "ConcreteFun"
}
override fun abstractFun() = Base.baseFun() + concreteFun()
}
fun box(): String {
if (Base.baseVal != "BaseVal") return "FAIL: Base.baseVal=${Base.baseVal}"
if (Base.baseFun() != "BaseFun") return "FAIL: Base.baseFun=${Base.baseFun()}"
if (Concrete.concreteVal != "ConcreteVal") return "FAIL: concreteVal=${Concrete.concreteVal}"
if (Concrete.concreteFun() != "ConcreteFun") return "FAIL: concreteFun=${Concrete.concreteFun()}"
val c = Concrete()
if (c.abstractFun() != "BaseFunConcreteFun") return "FAIL: abstractFun=${c.abstractFun()}"
return "OK"
}