| // UNEXPECTED BEHAVIOUR |
| // Issue: KT-37056 |
| class A() |
| |
| // TESTCASE NUMBER: 1 |
| fun case1(a: A?) { |
| val test = a?.let { |
| |
| Case1.invoke(it) //resolved to private constructor |
| |
| Case1(it) //resolved to private constructor |
| |
| Case1(A()) //resolved to private constructor |
| } |
| |
| Case1(A()) //resolved to private constructor |
| Case1(a = A()) //resolved to private constructor |
| } |
| |
| class Case1 private constructor(val a: String) { |
| companion object { |
| operator fun invoke(a: A) = "" |
| } |
| } |
| |
| // TESTCASE NUMBER: 2 |
| fun case2(a: A){ |
| Case2(a) |
| Case2(a = a) |
| } |
| |
| class Case2 { |
| companion object { |
| operator fun invoke(a: A) = "" |
| } |
| } |
| |
| // TESTCASE NUMBER: 3 |
| fun case3(a: A){ |
| Case3.Companion(a) //ok resolved to (2) |
| Case3.Companion(parameterA = a) //ok resolved to (2) |
| } |
| class Case3 { |
| companion object { |
| operator fun invoke(parameterA: A) = "" //(2) |
| } |
| } |