trait A { fun bar2(arg: Int = 239) : Int fun bar(arg: Int = 240) : Int = bar2(arg/2) } open abstract class B() : A, java.lang.Object() { override fun bar2(arg: Int) : Int = arg } class C() : B() { } fun box() : String { if(C().bar(10) != 5) return "fail" if(C().bar() != 120) return "fail" if(C().bar2() != 239) return "fail" if(C().bar2(10) != 10) return "fail" return "OK" }