Files
kotlin-fork/compiler/testData/codegen/box/callableReference/kt52270.kt
T
Victor Petukhov 2057deb91b [FE 1.0] Create DONT_CARE type only for callable references with no expected type
Otherwise, it can be resolved safety

^KT-52270 Fixed
2022-07-11 12:44:06 +00:00

61 lines
1.0 KiB
Kotlin
Vendored

// WITH_STDLIB
import kotlin.random.Random
fun fun1() {
}
fun fun2() {
}
fun takesLambda(lambda: () -> Unit) {
lambda()
}
fun takesOtherLambda(lambda: () -> Unit) = lambda()
fun foo() {}
fun bar2(): Int = 1
fun <K> foo4(): K = 2 as K
fun test1(): String {
takesOtherLambda {
val reference: () -> Unit = if (Random.nextBoolean()) {
::fun1
} else {
::fun2
}
takesLambda(reference)
}
return "OK"
}
fun test2(): String {
takesOtherLambda {
val reference: () -> Unit = if (Random.nextBoolean())
::fun1
else
::fun2
takesLambda(reference)
}
return "OK"
}
fun test3(): String {
takesOtherLambda {
val reference: () -> Unit = if (Random.nextBoolean()) {
foo()
::fun1
} else {
foo()
::fun2
}
takesLambda(reference)
}
return "OK"
}
fun box(): String {
return if (test1() == "OK" && test2() == "OK" && test3() == "OK") "OK" else "NOK"
}