"Invert if condition" intention works better for non-symmetric if's

#KT-5009 Fixed
This commit is contained in:
Valentin Kipyatkov
2015-05-12 22:25:07 +03:00
parent 181af17315
commit 279b406bca
34 changed files with 512 additions and 21 deletions
@@ -1,10 +1,8 @@
fun foo(): Int {
val x = 0
if (x != 1) {
} else {
x + 1
}
if (x != 1) return x
x + 1
return x
}
@@ -3,9 +3,7 @@ fun main() {
val list = 1..4
for (x in list) {
if (x != 2) {
} else {
list
}
if (x != 2) continue
list
}
}
@@ -2,7 +2,7 @@ fun foo(): Int {
val x = 0
if (x != 1) {
} else return x + 1
return 0
return 0
}
return x + 1
}
@@ -0,0 +1,13 @@
fun foo(): Boolean {
val x = 2
<caret>if (x <= 1) {
bar1()
bar2()
return false
}
bar1()
return true
}
fun bar1(){}
fun bar2(){}
@@ -0,0 +1,13 @@
fun foo(): Boolean {
val x = 2
<caret>if (x > 1) {
bar1()
return true
}
bar1()
bar2()
return false
}
fun bar1(){}
fun bar2(){}
@@ -0,0 +1,12 @@
fun foo() {
val x = 2
<caret>if (x <= 1) {
bar1()
bar2()
return
}
bar1()
}
fun bar1(){}
fun bar2(){}
@@ -0,0 +1,12 @@
fun foo() {
val x = 2
<caret>if (x > 1) {
bar1()
return
}
bar1()
bar2()
}
fun bar1(){}
fun bar2(){}
@@ -0,0 +1,7 @@
fun foo() {
val x = 2
<caret>if (x <= 1) return
bar()
}
fun bar(){}
@@ -0,0 +1,8 @@
fun foo() {
val x = 2
<caret>if (x > 1) {
bar()
}
}
fun bar(){}
@@ -0,0 +1,14 @@
fun foo(p: Int): Int {
if (p > 0) {
val x = p / 2
<caret>if (x <= 1) return 1
bar1()
}
else {
bar2()
}
return 2
}
fun bar1(){}
fun bar2(){}
@@ -0,0 +1,17 @@
fun foo(p: Int): Int {
if (p > 0) {
val x = p / 2
if (x > 1) {
bar1()
return 2
}
return 1
}
else {
bar2()
}
return 2
}
fun bar1(){}
fun bar2(){}
@@ -1,4 +1,3 @@
fun main() {
if (true != false) {
}
if (true != false) return
}
@@ -0,0 +1,12 @@
fun foo() {
val x = 2
<caret>if (x > 1) {
// invoke bar1&bar2
bar1()
bar2()
// done
}
}
fun bar1(){}
fun bar2(){}
@@ -0,0 +1,11 @@
fun foo() {
val x = 2
<caret>if (x <= 1) return
// invoke bar1&bar2
bar1()
bar2()
// done
}
fun bar1(){}
fun bar2(){}
@@ -0,0 +1,6 @@
fun foo() {
val x = 2
<caret>if (x > 1) bar()
}
fun bar(){}
@@ -0,0 +1,7 @@
fun foo() {
val x = 2
<caret>if (x <= 1) return
bar()
}
fun bar(){}
@@ -0,0 +1,8 @@
fun foo(p: Int) {
val x = 2
if (p > 0) {
<caret>if (x > 1) bar()
}
}
fun bar(){}
@@ -0,0 +1,9 @@
fun foo(p: Int) {
val x = 2
if (p > 0) {
<caret>if (x <= 1) return
bar()
}
}
fun bar(){}
@@ -0,0 +1,13 @@
fun foo() {
for (i in 1..10) {
if (i > 3) {
<caret>if (i > 5) {
bar()
}
break
}
bar()
}
}
fun bar(){}
@@ -0,0 +1,12 @@
fun foo() {
for (i in 1..10) {
if (i > 3) {
<caret>if (i <= 5) break
bar()
break
}
bar()
}
}
fun bar(){}
@@ -0,0 +1,13 @@
fun foo() {
for (i in 1..10) {
if (i > 3) {
<caret>if (i > 5) {
bar()
}
continue
}
bar()
}
}
fun bar(){}
@@ -0,0 +1,12 @@
fun foo() {
for (i in 1..10) {
if (i > 3) {
<caret>if (i <= 5) continue
bar()
continue
}
bar()
}
}
fun bar(){}
@@ -0,0 +1,9 @@
fun foo(p: Boolean): Boolean {
val x = 2
<caret>if (x > 1) {
bar()
}
return p
}
fun bar(){}
@@ -0,0 +1,8 @@
fun foo(p: Boolean): Boolean {
val x = 2
<caret>if (x <= 1) return p
bar()
return p
}
fun bar(){}
@@ -0,0 +1,9 @@
fun foo() {
val v: (Int) -> Unit = {
<caret>if (it > 1) {
bar()
}
}
}
fun bar(){}
@@ -0,0 +1,10 @@
fun foo() {
val v: (Int) -> Unit = {
<caret>if (it <= 1) {
} else {
bar()
}
}
}
fun bar(){}
@@ -0,0 +1,9 @@
fun foo() {
for (i in 1..10) {
<caret>if (i > 1) {
bar()
}
}
}
fun bar(){}
@@ -0,0 +1,8 @@
fun foo() {
for (i in 1..10) {
<caret>if (i <= 1) continue
bar()
}
}
fun bar(){}
@@ -0,0 +1,10 @@
// ERROR: A 'return' expression required in a function with a block body ('{...}')
fun foo(): Int {
val x = 2
<caret>if (x > 1) {
bar()
}
}
fun bar(){}
@@ -0,0 +1,11 @@
// ERROR: A 'return' expression required in a function with a block body ('{...}')
fun foo(): Int {
val x = 2
<caret>if (x <= 1) {
} else {
bar()
}
}
fun bar(){}
@@ -3,6 +3,5 @@ fun foo(): Boolean {
}
fun main() {
if (foo()) {
}
if (foo()) return
}
@@ -3,6 +3,5 @@ fun foo(): Boolean {
}
fun main() {
<caret>if (!foo()) {
}
<caret>if (!foo()) return
}