FIR: report UNSAFE_CALL on dot when possible

This commit is contained in:
Mikhail Glukhikh
2021-01-29 10:25:59 +03:00
parent 0ee4f1f393
commit 7d4eaefd36
249 changed files with 1208 additions and 1649 deletions
@@ -1,50 +0,0 @@
// !LANGUAGE: -BooleanElvisBoundSmartCasts
interface Order {
val expired: Boolean?
fun notExpired(): Boolean
fun doSomething()
}
fun foo(o: Any) {
val order = o as? Order
if (order?.expired ?: false) {
order.<!UNSAFE_CALL!>doSomething<!>()
}
else {
}
if (order?.notExpired() ?: false) {
order.<!UNSAFE_CALL!>doSomething<!>()
}
}
fun bar(o: Any) {
val order = o as? Order
if (order?.expired ?: true) {
}
else {
order!!.doSomething()
}
if (order?.notExpired() ?: true) {
}
else {
order!!.doSomething()
}
}
fun baz(o: Boolean?) {
if (o ?: false) {
o.<!UNSAFE_CALL!>hashCode<!>()
}
if (o ?: true) {
}
else {
o.<!UNSAFE_CALL!>hashCode<!>()
}
}