Convert ReplaceSingleLineLetIntention to inspection & decrease severity to INFORMATION

#KT-32010 Fixed
This commit is contained in:
Dmitry Gridin
2019-06-17 19:03:01 +07:00
parent ea76ea6fb8
commit 8e0bbe7d4a
107 changed files with 633 additions and 653 deletions
@@ -1 +1 @@
org.jetbrains.kotlin.idea.intentions.ReplaceSingleLineLetInspection
org.jetbrains.kotlin.idea.inspections.ReplaceSingleLineLetInspection
@@ -1,4 +1,4 @@
// IS_APPLICABLE: false
// PROBLEM: none
// WITH_RUNTIME
fun withAssign(arg: String?): String {
@@ -1,4 +1,4 @@
// IS_APPLICABLE: false
// PROBLEM: none
// WITH_RUNTIME
val x = 1
@@ -1,5 +1,5 @@
// WITH_RUNTIME
// PROBLEM: none
// HIGHLIGHT: INFORMATION
fun test(list: List<Int>) {
list.filter { it > 1 }
@@ -0,0 +1,7 @@
// WITH_RUNTIME
// HIGHLIGHT: INFORMATION
fun test(list: List<Int>) {
println(list.filter { it > 1 }
.filter { it > 2 })
}
@@ -1,4 +1,4 @@
// IS_APPLICABLE: false
// PROBLEM: none
// WITH_RUNTIME
fun isAlphaOrBeta(str: String) = str.let<caret> { it == "Alpha" || it == "Beta" }
@@ -1,5 +1,5 @@
// WITH_RUNTIME
// IS_APPLICABLE: false
// PROBLEM: none
fun test() {
(1 to 2).let<caret> { (i, j) -> foo(i, 3) }
@@ -1,5 +1,5 @@
// WITH_RUNTIME
// IS_APPLICABLE: false
// PROBLEM: none
fun test(k: Int) {
(1 to 2).let<caret> { (i, j) -> i + k }
@@ -1,5 +1,5 @@
// WITH_RUNTIME
// IS_APPLICABLE: false
// PROBLEM: none
fun test() {
(1 to 2).let<caret> { (i, j) -> i.toLong() }
@@ -1,4 +1,4 @@
// IS_APPLICABLE: false
// PROBLEM: none
// WITH_RUNTIME
fun main(args: Array<String>) {
@@ -4,5 +4,5 @@ fun foo(s: String, i: Int) = s.length + i
fun test() {
val s = ""
s.let { foo(it, 1)<caret> }
s.let<caret> { foo(it, 1) }
}
@@ -1,5 +1,5 @@
// WITH_RUNTIME
// IS_APPLICABLE: false
// PROBLEM: none
fun foo(s: String, i: Int) = s.length + i
@@ -1,5 +1,5 @@
// WITH_RUNTIME
// IS_APPLICABLE: false
// PROBLEM: none
fun foo(s: String, i: Int) = s.length + i
@@ -1,4 +1,4 @@
// IS_APPLICABLE: false
// PROBLEM: none
// WITH_RUNTIME
class Foo(val bar: () -> Int)
@@ -1,5 +1,5 @@
// WITH_RUNTIME
// IS_APPLICABLE: true
fun foo(list: List<Int>) {
list.filter { it.let<caret> { it in 1000..3000 } }
@@ -1,5 +1,5 @@
// WITH_RUNTIME
// IS_APPLICABLE: true
fun foo(list: List<Int>) {
list.filter { it in 1000..3000 }
@@ -1,5 +1,5 @@
// WITH_RUNTIME
// IS_APPLICABLE: false
// PROBLEM: none
fun foo(list: List<Int>) {
list.filter { it.let<caret> { value -> value in value..3000 } }
@@ -1,5 +1,5 @@
// WITH_RUNTIME
// IS_APPLICABLE: true
fun foo(list: List<Int>) {
list.filter { it.let<caret> { it in IntRange(1, 10) } }
@@ -1,5 +1,5 @@
// WITH_RUNTIME
// IS_APPLICABLE: true
fun foo(list: List<Int>) {
list.filter { it in IntRange(1, 10) }
@@ -1,5 +1,5 @@
// WITH_RUNTIME
// IS_APPLICABLE: false
// PROBLEM: none
fun foo(list: List<Int>) {
list.filter { it.let<caret> { it in IntRange(it - 1, 10) } }
@@ -1,4 +1,4 @@
// IS_APPLICABLE: false
// PROBLEM: none
// WITH_RUNTIME
class A {
operator fun invoke(a: A, i: Int) {}
@@ -1,4 +1,4 @@
// IS_APPLICABLE: false
// PROBLEM: none
// WITH_RUNTIME
class A {
operator fun invoke() {}
@@ -1,5 +1,5 @@
// WITH_RUNTIME
// IS_APPLICABLE: false
// PROBLEM: none
fun baz(foo: String) {
foo.let<caret> { it.indexOfLast { c -> c == it[0] } + 1 }
@@ -1,5 +1,5 @@
// WITH_RUNTIME
// IS_APPLICABLE: false
// PROBLEM: none
fun baz(foo: String) {
foo.let<caret> { it.length + "".indexOfLast { c -> c == it[0] } }
@@ -1,9 +1,9 @@
// WITH_RUNTIME
// IS_APPLICABLE: true
fun foo() {
val foo: String? = null
foo?.let {
it.length<caret>
foo?.let<caret> {
it.length
}
}
@@ -1,5 +1,5 @@
// WITH_RUNTIME
// IS_APPLICABLE: true
fun foo() {
val foo: String? = null
@@ -1,5 +1,5 @@
// WITH_RUNTIME
// IS_APPLICABLE: false
// PROBLEM: none
fun foo() {
val foo: String? = null
@@ -0,0 +1,9 @@
// WITH_RUNTIME
fun foo() {
val foo: String = ""
foo.let<caret> {
it.length
}
}
@@ -1,5 +1,5 @@
// WITH_RUNTIME
// IS_APPLICABLE: true
fun foo() {
val foo: String = ""
@@ -1,5 +1,5 @@
// WITH_RUNTIME
// IS_APPLICABLE: false
// PROBLEM: none
fun foo() {
val foo: String? = null
@@ -1,5 +1,5 @@
// WITH_RUNTIME
// IS_APPLICABLE: false
// PROBLEM: none
fun foo() {
val foo: String? = null
@@ -1,5 +1,5 @@
// WITH_RUNTIME
// IS_APPLICABLE: false
// PROBLEM: none
fun foo() {
val foo: String? = null
@@ -1,5 +1,5 @@
// WITH_RUNTIME
// IS_APPLICABLE: false
// PROBLEM: none
fun foo() {
"".let<caret> { it.length + "".indexOf(it) }
@@ -1,5 +1,5 @@
// WITH_RUNTIME
// IS_APPLICABLE: false
// PROBLEM: none
fun foo() {
"".let<caret> { it.length + it.length }
@@ -1,5 +1,5 @@
// WITH_RUNTIME
// IS_APPLICABLE: false
// PROBLEM: none
fun foo() {
"".let<caret> { it.substring(0, 1) + it }
@@ -1,5 +1,5 @@
// WITH_RUNTIME
// IS_APPLICABLE: false
// PROBLEM: none
fun foo() {
val foo: String? = null
@@ -1,5 +1,5 @@
// WITH_RUNTIME
// IS_APPLICABLE: false
// PROBLEM: none
fun foo() {
val foo: String? = null
@@ -1,5 +1,5 @@
// WITH_RUNTIME
// IS_APPLICABLE: false
// PROBLEM: none
fun foo() {
val foo: String? = null
@@ -1,5 +1,5 @@
// WITH_RUNTIME
// IS_APPLICABLE: false
// PROBLEM: none
fun foo() {
val foo: String? = null
@@ -1,5 +1,5 @@
// WITH_RUNTIME
// IS_APPLICABLE: true
fun foo() {
"".let<caret> { it.length + 1 }
@@ -1,5 +1,5 @@
// WITH_RUNTIME
// IS_APPLICABLE: true
fun foo() {
"".length + 1
@@ -1,9 +1,9 @@
// WITH_RUNTIME
// IS_APPLICABLE: true
fun foo() {
val foo: String? = null
foo?.let {
it.to("")<caret>
foo?.let<caret> {
it.to("")
}
}
@@ -1,5 +1,5 @@
// WITH_RUNTIME
// IS_APPLICABLE: true
fun foo() {
val foo: String? = null
@@ -0,0 +1,9 @@
// WITH_RUNTIME
fun foo() {
val foo: String? = null
foo?.let<caret> {
it.hashCode().hashCode()
}
}
@@ -1,5 +1,5 @@
// WITH_RUNTIME
// IS_APPLICABLE: true
fun foo() {
val foo: String? = null
@@ -1,10 +1,10 @@
// WITH_RUNTIME
// IS_APPLICABLE: true
fun foo() {
val foo: String? = null
foo?.let {
foo?.let<caret> {
text ->
text.length<caret>
text.length
}
}
@@ -1,5 +1,5 @@
// WITH_RUNTIME
// IS_APPLICABLE: true
fun foo() {
val foo: String? = null
@@ -1,5 +1,5 @@
// WITH_RUNTIME
// IS_APPLICABLE: true
fun foo() {
"".let<caret> { it + 1 }
@@ -1,5 +1,5 @@
// WITH_RUNTIME
// IS_APPLICABLE: true
fun Int.foo() {
let<caret> { it.dec() + 1 }
@@ -1,5 +1,5 @@
// WITH_RUNTIME
// IS_APPLICABLE: true
fun Int.foo() {
let<caret> { it + 1 }
@@ -1,5 +1,5 @@
// WITH_RUNTIME
// PROBLEM: none
// HIGHLIGHT: INFORMATION
fun test(list: List<Int>) {
list.filter { it > 1 }.filter { it > 2 }.filter { it > 3 }.let<caret> { println(it) }
@@ -0,0 +1,6 @@
// WITH_RUNTIME
// HIGHLIGHT: INFORMATION
fun test(list: List<Int>) {
println(list.filter { it > 1 }.filter { it > 2 }.filter { it > 3 })
}
@@ -1,5 +1,5 @@
// WITH_RUNTIME
// IS_APPLICABLE: false
// PROBLEM: none
fun baz(foo: String) {
foo.let<caret> { it.substringAfterLast(it.capitalize()) }
@@ -1,5 +1,5 @@
// WITH_RUNTIME
// IS_APPLICABLE: false
// PROBLEM: none
fun baz(foo: String) {
foo.let<caret> { it.substringAfterLast("".equals(it).toString()) }
@@ -1,5 +1,5 @@
// WITH_RUNTIME
// IS_APPLICABLE: false
// PROBLEM: none
fun baz(foo: String) {
foo.let<caret> { it.substring(0, it.length) }
@@ -1,4 +1,4 @@
// IS_APPLICABLE: false
// PROBLEM: none
// WITH_RUNTIME
fun foo(s: String) {
@@ -1,4 +1,4 @@
// IS_APPLICABLE: false
// PROBLEM: none
// WITH_RUNTIME
fun plusNullable(arg: String?) = arg?.let<caret> { it + "#" } ?: ""
@@ -1,5 +1,5 @@
// WITH_RUNTIME
// IS_APPLICABLE: false
// PROBLEM: none
fun baz(foo: String) {
foo.let<caret> { it.indexOfLast { c -> c == it[0] } }
@@ -1,5 +1,5 @@
// WITH_RUNTIME
// IS_APPLICABLE: false
// PROBLEM: none
// This should be reported. However, in order to avoid too complicate logic, the intention ignore this case.
import java.util.*
@@ -1,10 +1,10 @@
// WITH_RUNTIME
// IS_APPLICABLE: true
fun foo() {
val foo: String? = null
foo?.toString()?.let {
it.to("")<caret>
foo?.toString()?.let<caret> {
it.to("")
}?.let {
it.to("")
}
@@ -1,5 +1,5 @@
// WITH_RUNTIME
// IS_APPLICABLE: true
fun foo() {
val foo: String? = null
@@ -1,4 +1,4 @@
// IS_APPLICABLE: false
// PROBLEM: none
// WITH_RUNTIME
interface A
@@ -1,5 +1,5 @@
// WITH_RUNTIME
// IS_APPLICABLE: true
fun Int.foo(): Int {
return <caret>let { it.hashCode().hashCode() }
@@ -1,5 +1,5 @@
// WITH_RUNTIME
// IS_APPLICABLE: true
fun Int.foo(): Int {
return hashCode().hashCode()
@@ -1,5 +1,5 @@
// WITH_RUNTIME
// IS_APPLICABLE: true
fun Int.foo(): Int {
return <caret>let { it.hashCode() }
@@ -1,5 +1,5 @@
// WITH_RUNTIME
// IS_APPLICABLE: true
fun Int.foo(): Int {
return hashCode()
@@ -1,4 +1,4 @@
// IS_APPLICABLE: false
// PROBLEM: none
// WITH_RUNTIME
interface Base
@@ -1 +0,0 @@
org.jetbrains.kotlin.idea.intentions.ReplaceSingleLineLetIntention
@@ -1,9 +0,0 @@
// WITH_RUNTIME
// IS_APPLICABLE: true
fun foo() {
val foo: String = ""
foo.let {
it.length<caret>
}
}
@@ -1,9 +0,0 @@
// WITH_RUNTIME
// IS_APPLICABLE: true
fun foo() {
val foo: String? = null
foo?.let {
it.hashCode().hashCode()<caret>
}
}