Files
kotlin-fork/compiler/fir/analysis-tests/testData/resolve/companionObjectCall.kt
T
2020-04-02 12:10:50 +03:00

48 lines
918 B
Kotlin
Vendored

// 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)
}
}