36665fe3b8
- If class has type arguments (A<T1,..>) then resolve it's delegation call to `this` as for expression A<T1, ..>() like type arguments are explicitly specified. - Same logic works for `super` delegation calls. - It could be just enough to substitute all candidates before resolve but diagnostic messages looks more correct when substitution is performed within CandidateResolver.performResolutionForCandidateCall because it works the same way as when resolving A<T1, ..>(). #KT-6992 Fixed #KT-6993 Fixed #KT-6994 Fixed
21 lines
474 B
Plaintext
Vendored
21 lines
474 B
Plaintext
Vendored
class A<T1, T2> {
|
|
constructor(x: T1, y: T2) {}
|
|
constructor(x: T1, y: Int) {}
|
|
<caret>constructor(x: T1): this(x, 1) {}
|
|
}
|
|
|
|
|
|
Resolved call:
|
|
|
|
Candidate descriptor: constructor A<T1, T2>(x: T1, y: Int) defined in A
|
|
Resulting descriptor: constructor A<T1, T2>(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
|