[FIR] Check is for impossibility

^KT-58203 Fixed
^KT-62646
This commit is contained in:
Nikolay Lunyak
2024-02-29 15:39:33 +02:00
committed by Space Team
parent 92d8da621e
commit 88ff93df7f
42 changed files with 110 additions and 83 deletions
@@ -14,29 +14,29 @@ fun foo(a: A) {
if (a !is B) return
when (a) {
is A.A1 -> ""
is A.A2 -> "v"
<!USELESS_IS_CHECK!>is A.A1<!> -> ""
<!USELESS_IS_CHECK!>is A.A2<!> -> "v"
}.length
when (a) {
is A.A1 -> ""
is A.A2 -> "v"
<!USELESS_IS_CHECK!>is A.A1<!> -> ""
<!USELESS_IS_CHECK!>is A.A2<!> -> "v"
}.length // OK
when (a) {
is A.A1 -> ""
is A.A2 -> "v"
is B.B1 -> "..." // should be warning: unreachable code
<!USELESS_IS_CHECK!>is A.A1<!> -> ""
<!USELESS_IS_CHECK!>is A.A2<!> -> "v"
<!USELESS_IS_CHECK!>is B.B1<!> -> "..." // should be warning: unreachable code
}.length // OK
when (a) {
is A.A1 -> ""
is B.B1 -> "..."
is A.A2 -> "v"
<!USELESS_IS_CHECK!>is A.A1<!> -> ""
<!USELESS_IS_CHECK!>is B.B1<!> -> "..."
<!USELESS_IS_CHECK!>is A.A2<!> -> "v"
}.length // OK
<!NO_ELSE_IN_WHEN!>when<!> (a) {
is A.A1 -> ""
is B.B1 -> "..."
<!USELESS_IS_CHECK!>is A.A1<!> -> ""
<!USELESS_IS_CHECK!>is B.B1<!> -> "..."
}.length
}