Introduce "cascade if" inspection suggesting replacement with when

So #KT-18615 Fixed
This commit is contained in:
Mikhail Glukhikh
2017-06-27 18:21:08 +03:00
committed by Mikhail Glukhikh
parent 1ddaee5b4a
commit 8273eff1a1
15 changed files with 256 additions and 0 deletions
+1
View File
@@ -0,0 +1 @@
org.jetbrains.kotlin.idea.inspections.CascadeIfInspection
+16
View File
@@ -0,0 +1,16 @@
// PROBLEM: none
fun foo(a: Boolean, b: Boolean, c: Boolean) {
if (a) {
}
else <caret>if (b) {
}
else if (c) {
}
else {
}
}
+16
View File
@@ -0,0 +1,16 @@
// PROBLEM: none
fun println(s: String) {}
fun foo(a: Boolean, b: Boolean) {
<caret>if (a) {
if (b) println("ab")
else println("a")
}
else if (b) {
println("b")
}
else {
println("none")
}
}
@@ -0,0 +1,15 @@
fun println(s: String) {}
fun test(x: Double, a: Boolean, b: Boolean) {
if (x > 0.0) {
<caret>if (a) {
println("a")
}
else if (b) {
println("b")
}
else {
println("none")
}
}
}
@@ -0,0 +1,11 @@
fun println(s: String) {}
fun test(x: Double, a: Boolean, b: Boolean) {
if (x > 0.0) {
when {
a -> println("a")
b -> println("b")
else -> println("none")
}
}
}
+15
View File
@@ -0,0 +1,15 @@
// PROBLEM: none
fun println(s: String) {}
fun test(a: Boolean, b: Boolean) {
if (a) {
println("a")
}
else <caret>if (b) {
println("b")
}
else {
println("none")
}
}
@@ -0,0 +1,12 @@
// PROBLEM: none
fun println(s: String) {}
fun test(a: Boolean, b: Boolean) {
<caret>if (a) {
println("a")
}
else if (b) {
println("b")
}
}
+13
View File
@@ -0,0 +1,13 @@
fun println(s: String) {}
fun test(a: Boolean, b: Boolean) {
<caret>if (a) {
println("a")
}
else if (b) {
println("b")
}
else {
println("none")
}
}
@@ -0,0 +1,9 @@
fun println(s: String) {}
fun test(a: Boolean, b: Boolean) {
when {
a -> println("a")
b -> println("b")
else -> println("none")
}
}
+3
View File
@@ -0,0 +1,3 @@
// PROBLEM: none
val x = <caret>if (2 > 4) 1 else -1
+17
View File
@@ -0,0 +1,17 @@
// PROBLEM: none
fun println(s: String) {}
fun foo(size: Int, a: Boolean, b: Boolean) {
for (i in 1..size) {
<caret>if (a) {
break
}
else if (b) {
println("$i")
}
else {
println("*")
}
}
}