Don't suggest destructuring if at least half components not used

So #KT-16828 Fixed
This commit is contained in:
mglukhikh
2017-03-31 13:10:40 +03:00
committed by Mikhail Glukhikh
parent 318314f1a4
commit feb9dd4d83
8 changed files with 52 additions and 22 deletions
@@ -24,10 +24,10 @@
<description>Use destructuring declaration</description>
</problem>
<problem>
<file>last.kt</file>
<file>twoOfThree.kt</file>
<line>6</line>
<module>light_idea_test_case</module>
<entry_point TYPE="file" FQNAME="temp:///src/last.kt" />
<entry_point TYPE="file" FQNAME="temp:///src/twoOfThree.kt" />
<problem_class severity="WARNING" attribute_key="WARNING_ATTRIBUTES">Use destructuring declaration</problem_class>
<description>Use destructuring declaration</description>
</problem>
@@ -64,10 +64,10 @@
<description>Use destructuring declaration</description>
</problem>
<problem>
<file>mapIndexedLast.kt</file>
<file>mapIndexedExceptFirst.kt</file>
<line>5</line>
<module>light_idea_test_case</module>
<entry_point TYPE="file" FQNAME="temp:///src/mapIndexedLast.kt" />
<entry_point TYPE="file" FQNAME="temp:///src/mapIndexedExceptFirst.kt" />
<problem_class severity="WARNING" attribute_key="WARNING_ATTRIBUTES">Use destructuring declaration</problem_class>
<description>Use destructuring declaration</description>
</problem>
@@ -0,0 +1,5 @@
// WITH_RUNTIME
data class Package(val name: String, val version: String, val source: String, val id: Int)
val pkgs = listOf<Package>().mapIndexed { i, <caret>p -> "${p.name} ${p.version}" to i + p.id }.toMap()
@@ -0,0 +1,5 @@
// WITH_RUNTIME
data class Package(val name: String, val version: String, val source: String, val id: Int)
val pkgs = listOf<Package>().mapIndexed { i, (name, version, _, id) -> "${name} ${version}" to i + id }.toMap()
@@ -0,0 +1,10 @@
// WITH_RUNTIME
data class My(val first: String, val second: Int, val third: Boolean)
fun foo(list: List<My>) {
list.forEach { my<caret> ->
println(my.second)
println(my.third)
}
}
@@ -0,0 +1,10 @@
// WITH_RUNTIME
data class My(val first: String, val second: Int, val third: Boolean)
fun foo(list: List<My>) {
list.forEach { (_, second, third) ->
println(second)
println(third)
}
}