class A { constructor(x: Int = getSomeInt(), other: A = this, header: String = keker) {} fun getSomeInt() = 10 var keker = "test" } class B(other: B = this) class C() { constructor(x: Int) : this({ val a = 10 this }) {} } class D { var a = 20 constructor() { this.a = 10 } } fun main() { val x1: String.() -> String = if (true) { { this } } else { { this } } } fun test(f: F) {} val a = this class F(var a: Int, b: Int, closure: () -> Unit, instance: F?) { constructor(x: Int) : this(x, x, { val a = 10 this test(this) this.a = 20 }, this) { this.a = 30 } } open class Base(val x: Int) class Derived : Base(this.y) { // FE 1.0 reports NO_THIS here val y = 42 }