class B : A { constructor() /* primary */ { super/*Any*/() /* () */ } override fun f(x: String): String { return x } } class C : A { val x: A field = x get constructor(x: A) /* primary */ { super/*Any*/() /* () */ } override fun f(x: String): String { return .#x.f(x = x) } } interface A { abstract fun f(x: String = "OK"): String }