Files
kotlin-fork/compiler/fir/analysis-tests/testData/resolve/smartcasts/safeCalls/safeCallAndEqualityToBool.kt
T
Jinseong Jeon e72ddbcbfe FIR checker: differentiate UNSAFE_CALL from INAPPLICABLE_CANDIDATE
To do so, inside the root cause of inapplicable candidate errors,
we will record expected/actual type of receiver, if any.
That will help identifying inapplicable calls on nullable receiver.
2021-01-29 16:54:23 +03:00

35 lines
698 B
Kotlin
Vendored

// !DUMP_CFG
fun String.check(): Boolean = true
fun test_1(s: String?) {
if (s?.check() == true) {
s.length // Should be OK
} else {
s.<!UNSAFE_CALL!>length<!> // Should be bad
}
}
fun test_2(s: String?) {
if (s?.check() == false) {
s.length // Should be OK
} else {
s.<!UNSAFE_CALL!>length<!> // Should be bad
}
}
fun test_3(s: String?) {
if (s?.check() != true) {
s.<!UNSAFE_CALL!>length<!> // Should be bad
} else {
s.length // Should be OK
}
}
fun test_4(s: String?) {
if (s?.check() != false) {
s.<!UNSAFE_CALL!>length<!> // Should be bad
} else {
s.length // Should be OK
}
}