diff --git a/idea/src/org/jetbrains/kotlin/idea/intentions/AddMissingDestructuringIntention.kt b/idea/src/org/jetbrains/kotlin/idea/intentions/AddMissingDestructuringIntention.kt index b7c2b4067e3..3ec14c3c9c8 100644 --- a/idea/src/org/jetbrains/kotlin/idea/intentions/AddMissingDestructuringIntention.kt +++ b/idea/src/org/jetbrains/kotlin/idea/intentions/AddMissingDestructuringIntention.kt @@ -40,8 +40,9 @@ class AddMissingDestructuringIntention : filter = NewDeclarationNameValidator(element.parent.parent, null, NewDeclarationNameValidator.Target.VARIABLES) ) - val newEntries = entries.joinToString(postfix = ", ") { it.text } + - primaryParameters.asSequence().drop(entries.size).joinToString { + val entriesSize = entries.size + val newEntries = entries.joinToString(postfix = if (entriesSize == 0) "" else ", ") { it.text } + + primaryParameters.asSequence().drop(entriesSize).joinToString { KotlinNameSuggester.suggestNameByName(it.name.asString(), nameValidator) } val initializer = element.initializer ?: return diff --git a/idea/testData/intentions/addMissingDestructuring/empty.kt b/idea/testData/intentions/addMissingDestructuring/empty.kt new file mode 100644 index 00000000000..a5a90e0b1bc --- /dev/null +++ b/idea/testData/intentions/addMissingDestructuring/empty.kt @@ -0,0 +1,5 @@ +data class Foo(val a: String, val b: String, val c: String) + +fun bar(f: Foo) { + val () = f +} \ No newline at end of file diff --git a/idea/testData/intentions/addMissingDestructuring/empty.kt.after b/idea/testData/intentions/addMissingDestructuring/empty.kt.after new file mode 100644 index 00000000000..2dec2340498 --- /dev/null +++ b/idea/testData/intentions/addMissingDestructuring/empty.kt.after @@ -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 +} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java index 12c2e785836..c57fb6573c1 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java @@ -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); } + @TestMetadata("empty.kt") + public void testEmpty() throws Exception { + runTest("idea/testData/intentions/addMissingDestructuring/empty.kt"); + } + @TestMetadata("notAvailable.kt") public void testNotAvailable() throws Exception { runTest("idea/testData/intentions/addMissingDestructuring/notAvailable.kt");