open class JClass() { fun test(): String { return "OK" } } class Example : JClass { constructor() : super() private var obj: JClass? = null var result: String? = null init { val lambda = { result = obj?.test() } lambda() } } class Example2 : JClass { constructor() : super() private var obj: JClass? = this var result: String? = null init { val lambda = { result = obj?.test() } lambda() } } fun box(): String { val result = Example().result if (result != null) "fail 1: $result" return Example2().result!! }