if to when intention now detects effectively else branches in subsequent code + performs more accurate comment handling #KT-10750 Fixed

Also #KT-11424 Fixed
This commit is contained in:
Mikhail Glukhikh
2016-03-14 20:22:29 +03:00
parent c3d450f050
commit fa069214fd
18 changed files with 288 additions and 12 deletions
@@ -0,0 +1,8 @@
fun bar(arg: Int): String {
<caret>if (arg == 1) return "One"
else if (arg == 2) return "Two"
if (arg == 0) return "Zero"
if (arg == -1) return "Minus One"
else if (arg == -2) return "Minus Two"
return "Something Complex"
}
@@ -0,0 +1,10 @@
fun bar(arg: Int): String {
when (arg) {
1 -> return "One"
2 -> return "Two"
0 -> return "Zero"
-1 -> return "Minus One"
-2 -> return "Minus Two"
else -> return "Something Complex"
}
}
@@ -0,0 +1,6 @@
fun foo(arg: Int): Int {
// 1
<caret>if (arg == 0) return 0
// 2
else return -1
}
@@ -0,0 +1,8 @@
fun foo(arg: Int): Int {
// 1
when (arg) {
0 -> return 0
// 2
else -> return -1
}
}
@@ -0,0 +1,4 @@
fun foo(arg: Int): Int {
<caret>if (arg == 0) return 0 // 1
else return -1 // 2
}
@@ -0,0 +1,6 @@
fun foo(arg: Int): Int {
when (arg) {
0 -> return 0 // 1
else -> return -1 // 2
}
}
@@ -0,0 +1,9 @@
fun bar(arg: Int): Int {
<caret>if (arg < 0) {
if (arg == -3) return 0
}
if (arg > 0) {
return 1
}
return -1
}
@@ -0,0 +1,9 @@
fun bar(arg: Int): Int {
when {
arg < 0 -> if (arg == -3) return 0
}
if (arg > 0) {
return 1
}
return -1
}
@@ -0,0 +1,15 @@
fun foo(arg: Int): Int {
<caret>if (arg < 0) {
var x = arg + 1
x++
return x
}
if (arg > 0) {
var y = arg - 1
y--
return y
}
var z = arg
z *= 2
return z
}
@@ -0,0 +1,19 @@
fun foo(arg: Int): Int {
when {
arg < 0 -> {
var x = arg + 1
x++
return x
}
arg > 0 -> {
var y = arg - 1
y--
return y
}
else -> {
var z = arg
z *= 2
return z
}
}
}
@@ -0,0 +1,17 @@
fun foo(arg: Any?): Int {
// 1
<caret>if (arg is Int) {
return arg // 2
}
// 3
if (arg is String) {
return 42 // 4
}
// 5
if (arg == null) {
// 6
return 0
}
// 7
return -1 // 8
}
@@ -0,0 +1,14 @@
fun foo(arg: Any?): Int {
// 1
when (arg) {
is Int -> return arg // 2
// 3
is String -> return 42 // 4
// 5
null -> // 6
return 0
// 7
// 8
else -> return -1
}
}
@@ -0,0 +1,6 @@
fun bar(arg: Int): Int {
<caret>if (arg == 1) return 2
if (arg == 2) return 5
if (arg == 3) return 9
return 13
}
@@ -0,0 +1,8 @@
fun bar(arg: Int): Int {
when (arg) {
1 -> return 2
2 -> return 5
3 -> return 9
else -> return 13
}
}
@@ -0,0 +1,4 @@
fun foo(arg: Int) {
<caret>if (arg == 0) return
if (arg == 1) else return
}
@@ -0,0 +1,6 @@
fun foo(arg: Int) {
when (arg) {
0 -> return
}
if (arg == 1) else return
}