Files
kotlin-fork/compiler/fir/analysis-tests/testData/resolve/companionObjectCall.kt
T
2020-03-19 09:51:01 +03:00

47 lines
1.1 KiB
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
<!INAPPLICABLE_CANDIDATE!>Case1<!>(it) //resolved to private constructor
<!INAPPLICABLE_CANDIDATE!>Case1<!>(A()) //resolved to private constructor
}
<!INAPPLICABLE_CANDIDATE!>Case1<!>(A()) //resolved to private constructor
<!INAPPLICABLE_CANDIDATE!>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){
<!INAPPLICABLE_CANDIDATE!>Case2<!>(a)
<!INAPPLICABLE_CANDIDATE!>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)
}
}