// IGNORE_BACKEND_FIR: JVM_IR interface I { fun foo(x: T): String = "foo($x)" fun bar(x: T, y: String = "default") = "bar($x,$y)" } interface J : I class A : I, J class B : J, I fun box(): String { val foo = A().foo("q") if (foo != "foo(q)") return "fail1: $foo" val bar1 = A().bar("w") if (bar1 != "bar(w,default)") return "fail2: $bar1" val bar2 = A().bar("e", "r") if (bar2 != "bar(e,r)") return "fail3: $bar2" val foo2 = B().foo("t") if (foo2 != "foo(t)") return "fail4: $foo2" return "OK" }