KT-5045: intention to convert between two comparisons and range check and vice versa

This commit is contained in:
shiraji
2016-12-07 06:33:09 +09:00
committed by Mikhail Glukhikh
parent 1040c97196
commit 6d6a16f399
70 changed files with 627 additions and 0 deletions
@@ -0,0 +1 @@
org.jetbrains.kotlin.idea.intentions.ConvertTwoComparisonsToRangeCheckIntention
@@ -0,0 +1,3 @@
fun foo(bar: Char) {
bar >= 'a' && 'z' >= bar<caret>
}
@@ -0,0 +1,3 @@
fun foo(bar: Char) {
bar in 'a'..'z'
}
@@ -0,0 +1,3 @@
fun foo(bar: Char) {
bar > 'a' && 'z' > bar<caret>
}
@@ -0,0 +1,3 @@
fun foo(bar: Char) {
bar in 'b'..'y'
}
@@ -0,0 +1,4 @@
// WITH_RUNTIME
fun foo(bar: Int) {
bar >= 0.0 && 10.0 >= bar<caret>
}
@@ -0,0 +1,4 @@
// WITH_RUNTIME
fun foo(bar: Int) {
bar in 0.0..10.0
}
@@ -0,0 +1 @@
fun foo(arg: Int) = 6 > arg && arg >= 1<caret>
@@ -0,0 +1 @@
fun foo(arg: Int) = arg in 1..5
@@ -0,0 +1,6 @@
// IS_APPLICABLE: false
var x = 42
// Should be converted into arg in --x..++x (41..42) but initial check is arg <= ++x (43) && --x (42) <= arg
fun foo(arg: Int) = <caret>arg <= ++x && --x <= arg
@@ -0,0 +1,5 @@
// IS_APPLICABLE: false
// WITH_RUNTIME
fun foo(bar: Int) {
bar > 0.0 && 10.0 >= bar<caret>
}
@@ -0,0 +1,5 @@
// IS_APPLICABLE: false
// WITH_RUNTIME
fun foo(bar: Double) {
bar > 0 && 10 >= bar<caret>
}
@@ -0,0 +1,3 @@
fun foo(bar: Int) {
bar >= 0 && 10 > bar<caret>
}
@@ -0,0 +1,3 @@
fun foo(bar: Int) {
bar in 0..9
}
@@ -0,0 +1,3 @@
fun foo(bar: Int) {
bar >= 0 && 10 >= bar<caret>
}
@@ -0,0 +1,3 @@
fun foo(bar: Int) {
bar in 0..10
}
@@ -0,0 +1,3 @@
fun foo(bar: Int) {
bar >= 0 && bar < 10<caret>
}
@@ -0,0 +1,3 @@
fun foo(bar: Int) {
bar in 0..9
}
@@ -0,0 +1,3 @@
fun foo(bar: Int) {
bar >= 0 && bar <= 10<caret>
}
@@ -0,0 +1,3 @@
fun foo(bar: Int) {
bar in 0..10
}
@@ -0,0 +1,3 @@
fun foo(bar: Int) {
bar > 0 && 10 > bar<caret>
}
@@ -0,0 +1,3 @@
fun foo(bar: Int) {
bar in 1..9
}
@@ -0,0 +1,3 @@
fun foo(bar: Int) {
bar > 0 && 10 >= bar<caret>
}
@@ -0,0 +1,3 @@
fun foo(bar: Int) {
bar in 1..10
}
@@ -0,0 +1,3 @@
fun foo(bar: Int) {
bar > 0 && bar < 10<caret>
}
@@ -0,0 +1,3 @@
fun foo(bar: Int) {
bar in 1..9
}
@@ -0,0 +1,3 @@
fun foo(bar: Int) {
bar > 0 && bar <= 10<caret>
}
@@ -0,0 +1,3 @@
fun foo(bar: Int) {
bar in 1..10
}
@@ -0,0 +1,3 @@
fun foo(bar: Int) {
0 <= bar && 10 > bar<caret>
}
@@ -0,0 +1,3 @@
fun foo(bar: Int) {
bar in 0..9
}
@@ -0,0 +1,3 @@
fun foo(bar: Int) {
0 <= bar && 10 >= bar<caret>
}
@@ -0,0 +1,3 @@
fun foo(bar: Int) {
bar in 0..10
}
@@ -0,0 +1,3 @@
fun foo(bar: Int) {
0 <= bar && bar < 10<caret>
}
@@ -0,0 +1,3 @@
fun foo(bar: Int) {
bar in 0..9
}
@@ -0,0 +1,3 @@
fun foo(bar: Int) {
0 <= bar && bar <= 10<caret>
}
@@ -0,0 +1,3 @@
fun foo(bar: Int) {
bar in 0..10
}
@@ -0,0 +1,3 @@
fun foo(bar: Int) {
0 < bar && 10 > bar<caret>
}
@@ -0,0 +1,3 @@
fun foo(bar: Int) {
bar in 1..9
}
@@ -0,0 +1,3 @@
fun foo(bar: Int) {
0 < bar && 10 >= bar<caret>
}
@@ -0,0 +1,3 @@
fun foo(bar: Int) {
bar in 1..10
}
@@ -0,0 +1,3 @@
fun foo(bar: Int) {
0 < bar && bar < 10<caret>
}
@@ -0,0 +1,3 @@
fun foo(bar: Int) {
bar in 1..9
}
@@ -0,0 +1,3 @@
fun foo(bar: Int) {
0 < bar && bar <= 10<caret>
}
@@ -0,0 +1,3 @@
fun foo(bar: Int) {
bar in 1..10
}
@@ -0,0 +1,3 @@
fun foo(bar: Int, min: Int, max: Int) {
min < bar && bar < max<caret>
}
@@ -0,0 +1,3 @@
fun foo(bar: Int, min: Int, max: Int) {
bar in (min + 1)..(max - 1)
}