Suggest to replace 'substring' calls by take/drop/dropLast calls when possible

#KT-10196 Fixed
This commit is contained in:
Anton Sukhonosenko
2016-01-02 16:52:05 +03:00
parent 0a3631db6a
commit ba0efda2f0
59 changed files with 672 additions and 0 deletions
@@ -0,0 +1 @@
org.jetbrains.kotlin.idea.intentions.ReplaceSubstringWithDropIntention
@@ -0,0 +1,5 @@
// WITH_RUNTIME
fun foo(s: String) {
s.substring<caret>(4)
}
@@ -0,0 +1,5 @@
// WITH_RUNTIME
fun foo(s: String) {
s.drop(4)
}
@@ -0,0 +1,5 @@
// WITH_RUNTIME
fun foo(s: String) {
s.substring<caret>(4);
}
@@ -0,0 +1,5 @@
// WITH_RUNTIME
fun foo(s: String) {
s.drop(4);
}
@@ -0,0 +1,6 @@
// IS_APPLICABLE: false
// WITH_RUNTIME
fun foo(s: String) {
s.substring<caret>(0, 10)
}
@@ -0,0 +1 @@
org.jetbrains.kotlin.idea.intentions.ReplaceSubstringWithDropLastIntention
@@ -0,0 +1,7 @@
// WITH_RUNTIME
class A(val x: String)
fun foo(a: A) {
a.x.substring<caret>(0, a.x.length - 5)
}
@@ -0,0 +1,7 @@
// WITH_RUNTIME
class A(val x: String)
fun foo(a: A) {
a.x.dropLast(5)
}
@@ -0,0 +1,6 @@
// IS_APPLICABLE: false
// WITH_RUNTIME
fun foo(s: String) {
s.substring<caret>(3, s.length - 5)
}
@@ -0,0 +1,5 @@
// WITH_RUNTIME
fun foo(s: String) {
s.substring<caret>(0, s.length - 5)
}
@@ -0,0 +1,5 @@
// WITH_RUNTIME
fun foo(s: String) {
s.dropLast(5)
}
@@ -0,0 +1,5 @@
// WITH_RUNTIME
fun foo(s: String) {
s.substring<caret>(0, s.length - 5);
}
@@ -0,0 +1,5 @@
// WITH_RUNTIME
fun foo(s: String) {
s.dropLast(5);
}
@@ -0,0 +1 @@
org.jetbrains.kotlin.idea.intentions.ReplaceSubstringWithSubstringAfterIntention
@@ -0,0 +1,7 @@
// WITH_RUNTIME
class A(val x: String)
fun foo(a: A) {
a.x.substring<caret>(a.x.indexOf('x'))
}
@@ -0,0 +1,7 @@
// WITH_RUNTIME
class A(val x: String)
fun foo(a: A) {
a.x.substringAfter('x')
}
@@ -0,0 +1,5 @@
// WITH_RUNTIME
fun foo(s: String) {
s.substring<caret>(s.indexOf('x'))
}
@@ -0,0 +1,5 @@
// WITH_RUNTIME
fun foo(s: String) {
s.substringAfter('x')
}
@@ -0,0 +1,5 @@
// WITH_RUNTIME
fun foo(s: String) {
s.substring<caret>(s.indexOf('x'));
}
@@ -0,0 +1,5 @@
// WITH_RUNTIME
fun foo(s: String) {
s.substringAfter('x');
}
@@ -0,0 +1 @@
org.jetbrains.kotlin.idea.intentions.ReplaceSubstringWithSubstringBeforeIntention
@@ -0,0 +1,7 @@
// WITH_RUNTIME
class A(val x: String)
fun foo(a: A) {
a.x.substring<caret>(0, a.x.indexOf('x'))
}
@@ -0,0 +1,7 @@
// WITH_RUNTIME
class A(val x: String)
fun foo(a: A) {
a.x.substringBefore('x')
}
@@ -0,0 +1,6 @@
// IS_APPLICABLE: false
// WITH_RUNTIME
fun foo(s: String) {
s.substring<caret>(1, s.indexOf('x'))
}
@@ -0,0 +1,5 @@
// WITH_RUNTIME
fun foo(s: String) {
s.substring<caret>(0, s.indexOf('x'))
}
@@ -0,0 +1,5 @@
// WITH_RUNTIME
fun foo(s: String) {
s.substringBefore('x')
}
@@ -0,0 +1,5 @@
// WITH_RUNTIME
fun foo(s: String) {
s.substring<caret>(0, s.indexOf('x'));
}
@@ -0,0 +1,5 @@
// WITH_RUNTIME
fun foo(s: String) {
s.substringBefore('x');
}
@@ -0,0 +1 @@
org.jetbrains.kotlin.idea.intentions.ReplaceSubstringWithTakeIntention
@@ -0,0 +1,8 @@
// IS_APPLICABLE: false
// WITH_RUNTIME
const val x = 0
fun foo(s: String) {
s.substring<caret>(x, 10)
}
@@ -0,0 +1,6 @@
// IS_APPLICABLE: false
// WITH_RUNTIME
fun foo(s: String) {
s.substring<caret>(1 - 1, 10)
}
@@ -0,0 +1,6 @@
// IS_APPLICABLE: false
// WITH_RUNTIME
fun foo(s: String) {
s.substring<caret>(1, 10)
}
@@ -0,0 +1,5 @@
// WITH_RUNTIME
fun foo(s: String) {
s.substring<caret>(0, 10)
}
@@ -0,0 +1,5 @@
// WITH_RUNTIME
fun foo(s: String) {
s.take(10)
}
@@ -0,0 +1,5 @@
// WITH_RUNTIME
fun foo(s: String) {
s.substring<caret>(0, 10);
}
@@ -0,0 +1,5 @@
// WITH_RUNTIME
fun foo(s: String) {
s.take(10);
}