class A { constructor(x: T) {} constructor(block: () -> T): this(block()) {} } Resolved call: Candidate descriptor: constructor A(x: T) defined in A Resulting descriptor: constructor A(x: T) defined in A Explicit receiver kind = NO_EXPLICIT_RECEIVER Dispatch receiver = NO_RECEIVER Extension receiver = NO_RECEIVER Value arguments mapping: SUCCESS x : T = block()