class A { constructor(x: T1, y: T2) {} constructor(x: T1, y: Int) {} constructor(x: T1): this(x, 1) {} } Resolved call: Candidate descriptor: constructor A(x: T1, y: Int) defined in A Resulting descriptor: constructor A(x: T1, y: Int) defined in A Explicit receiver kind = NO_EXPLICIT_RECEIVER Dispatch receiver = NO_RECEIVER Extension receiver = NO_RECEIVER Value arguments mapping: SUCCESS x : T1 = x SUCCESS y : Int = 1