"Remove redundant '.let' call" intention: handle it inside function call

So #KT-20583 Fixed
This commit is contained in:
Toshiaki Kameyama
2018-06-12 04:26:17 +03:00
committed by Mikhail Glukhikh
parent d4798b699f
commit 096f9fefd1
18 changed files with 212 additions and 5 deletions
@@ -0,0 +1,8 @@
// WITH_RUNTIME
fun foo(s: String, i: Int) = s.length + i
fun test() {
val s = ""
s.let<caret> { foo("", 1) }
}
@@ -0,0 +1,8 @@
// WITH_RUNTIME
fun foo(s: String, i: Int) = s.length + i
fun test() {
val s = ""
<caret>foo("", 1)
}
@@ -0,0 +1,8 @@
// WITH_RUNTIME
fun foo(s: String, i: Int) = s.length + i
fun test() {
val s = ""
s.let { foo(it, 1)<caret> }
}
@@ -0,0 +1,8 @@
// WITH_RUNTIME
fun foo(s: String, i: Int) = s.length + i
fun test() {
val s = ""
<caret>foo(s, 1)
}
@@ -0,0 +1,8 @@
// WITH_RUNTIME
fun foo(s: String, i: Int) = s.length + i
fun test() {
val s = ""
s.let<caret> { foo("", it.length) }
}
@@ -0,0 +1,8 @@
// WITH_RUNTIME
fun foo(s: String, i: Int) = s.length + i
fun test() {
val s = ""
foo("", s.length)
}
@@ -0,0 +1,8 @@
// WITH_RUNTIME
fun foo(s: String, i: Int) = s.length + i
fun test() {
val s = ""
s.let<caret> { x -> foo("", x.length) }
}
@@ -0,0 +1,8 @@
// WITH_RUNTIME
fun foo(s: String, i: Int) = s.length + i
fun test() {
val s = ""
foo("", s.length)
}
@@ -0,0 +1,8 @@
// WITH_RUNTIME
fun foo(s: String, i: Int) = s.length + i
fun test() {
val s = ""
s.length.let<caret> { foo("", it) }
}
@@ -0,0 +1,8 @@
// WITH_RUNTIME
fun foo(s: String, i: Int) = s.length + i
fun test() {
val s = ""
foo("", s.length)
}
@@ -0,0 +1,8 @@
// WITH_RUNTIME
fun foo(s: String, i: Int) = s.length + i
fun test() {
fun bar() = ""
bar().let<caret> { foo(it, 1) }
}
@@ -0,0 +1,8 @@
// WITH_RUNTIME
fun foo(s: String, i: Int) = s.length + i
fun test() {
fun bar() = ""
foo(bar(), 1)
}
@@ -0,0 +1,9 @@
// WITH_RUNTIME
// IS_APPLICABLE: false
fun foo(s: String, i: Int) = s.length + i
fun test() {
val s = ""
s.let<caret> { foo(it, it.length) }
}
@@ -0,0 +1,7 @@
// WITH_RUNTIME
fun foo(s: String, i: Int) = s.length + i
fun String.baz(): Int {
return let<caret> { foo(it, 1) }
}
@@ -0,0 +1,7 @@
// WITH_RUNTIME
fun foo(s: String, i: Int) = s.length + i
fun String.baz(): Int {
return foo(this, 1)
}
@@ -0,0 +1,9 @@
// WITH_RUNTIME
// IS_APPLICABLE: false
fun foo(s: String, i: Int) = s.length + i
fun test() {
val nullable: String? = null
nullable?.let<caret> { foo(it, 1) }
}