Files
kotlin-fork/compiler/testData/diagnostics/tests/smartCasts/nullableLambda.kt
T
Aleksandra.Arsenteva c6b32200df [Test] Add diagnostic tests for smartcast in K2
List of issues:
KT-28806, KT-7186, KT-22997, KT-1982, KT-22996, KT-54443, KT-37308, KT-37115, KT-4113, KT-25747, KT-24779
2023-12-18 13:08:33 +00:00

56 lines
1.1 KiB
Kotlin
Vendored

// ISSUE: KT-4113
// DIAGNOSTICS: -DEBUG_INFO_SMARTCAST
class Test1(val lambda: (() -> String)?) {
fun foo() {
if (lambda != null) {
lambda.invoke()
<!UNSAFE_IMPLICIT_INVOKE_CALL!>lambda<!>()
}
}
}
fun test2(lambda: (() -> String)?) {
if (lambda != null) {
lambda.invoke()
lambda()
}
}
class A
operator fun A.invoke(): Unit = TODO()
class Test3 {
val nullableCallableClass: A? = null
fun foo() {
if (nullableCallableClass != null) {
<!UNSAFE_CALL!>nullableCallableClass<!>()
}
}
}
fun test4(nullableCallableClass: A?){
if (nullableCallableClass != null) {
nullableCallableClass()
}
}
class B {
operator fun invoke(s: String): (() -> String)? = TODO()
operator fun invoke(): (() -> String) = TODO()
}
class Test4 {
fun foo(a: B) {
if (a("") != null) {
a()()
<!UNSAFE_IMPLICIT_INVOKE_CALL!>a("")<!>()
}
}
}
fun test5(a: B) {
if (a("") != null) {
a()()
<!UNSAFE_IMPLICIT_INVOKE_CALL!>a("")<!>()
}
}