"Add missing component" intention: fix it works correctly if entries is empty
#KT-36094 Fixed
This commit is contained in:
committed by
Ilya Kirillov
parent
0a215cafa7
commit
34cfe7dfdb
@@ -40,8 +40,9 @@ class AddMissingDestructuringIntention :
|
|||||||
filter = NewDeclarationNameValidator(element.parent.parent, null, NewDeclarationNameValidator.Target.VARIABLES)
|
filter = NewDeclarationNameValidator(element.parent.parent, null, NewDeclarationNameValidator.Target.VARIABLES)
|
||||||
)
|
)
|
||||||
|
|
||||||
val newEntries = entries.joinToString(postfix = ", ") { it.text } +
|
val entriesSize = entries.size
|
||||||
primaryParameters.asSequence().drop(entries.size).joinToString {
|
val newEntries = entries.joinToString(postfix = if (entriesSize == 0) "" else ", ") { it.text } +
|
||||||
|
primaryParameters.asSequence().drop(entriesSize).joinToString {
|
||||||
KotlinNameSuggester.suggestNameByName(it.name.asString(), nameValidator)
|
KotlinNameSuggester.suggestNameByName(it.name.asString(), nameValidator)
|
||||||
}
|
}
|
||||||
val initializer = element.initializer ?: return
|
val initializer = element.initializer ?: return
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
data class Foo(val a: String, val b: String, val c: String)
|
||||||
|
|
||||||
|
fun bar(f: Foo) {
|
||||||
|
val (<caret>) = f
|
||||||
|
}
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
data class Foo(val a: String, val b: String, val c: String)
|
||||||
|
|
||||||
|
fun bar(f: Foo) {
|
||||||
|
val (a, b, c) = f
|
||||||
|
}
|
||||||
@@ -1142,6 +1142,11 @@ public class IntentionTestGenerated extends AbstractIntentionTest {
|
|||||||
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("idea/testData/intentions/addMissingDestructuring"), Pattern.compile("^([\\w\\-_]+)\\.(kt|kts)$"), null, true);
|
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("idea/testData/intentions/addMissingDestructuring"), Pattern.compile("^([\\w\\-_]+)\\.(kt|kts)$"), null, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("empty.kt")
|
||||||
|
public void testEmpty() throws Exception {
|
||||||
|
runTest("idea/testData/intentions/addMissingDestructuring/empty.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("notAvailable.kt")
|
@TestMetadata("notAvailable.kt")
|
||||||
public void testNotAvailable() throws Exception {
|
public void testNotAvailable() throws Exception {
|
||||||
runTest("idea/testData/intentions/addMissingDestructuring/notAvailable.kt");
|
runTest("idea/testData/intentions/addMissingDestructuring/notAvailable.kt");
|
||||||
|
|||||||
Reference in New Issue
Block a user