From dd7d7a5fc717e84b9b2141673b588f22c729b247 Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Thu, 6 Oct 2016 14:22:09 +0300 Subject: [PATCH] Destructure inspection: do not apply on variable declarations or function literals without explicit parameters + name & severity changed --- idea/src/META-INF/plugin.xml | 4 +- .../idea/intentions/DestructureIntention.kt | 9 +- .../inspectionData/expected.xml | 88 +++++++++---------- 3 files changed, 53 insertions(+), 48 deletions(-) diff --git a/idea/src/META-INF/plugin.xml b/idea/src/META-INF/plugin.xml index 0bd9fe2a37d..b3a8e1ea4ec 100644 --- a/idea/src/META-INF/plugin.xml +++ b/idea/src/META-INF/plugin.xml @@ -1639,11 +1639,11 @@ /> diff --git a/idea/src/org/jetbrains/kotlin/idea/intentions/DestructureIntention.kt b/idea/src/org/jetbrains/kotlin/idea/intentions/DestructureIntention.kt index d23a70b2f43..e3ece836981 100644 --- a/idea/src/org/jetbrains/kotlin/idea/intentions/DestructureIntention.kt +++ b/idea/src/org/jetbrains/kotlin/idea/intentions/DestructureIntention.kt @@ -39,11 +39,16 @@ import org.jetbrains.kotlin.resolve.calls.callUtil.getResolvedCall import org.jetbrains.kotlin.resolve.descriptorUtil.builtIns import java.util.* -class DestructureInspection : IntentionBasedInspection(DestructureIntention::class) +class DestructureInspection : IntentionBasedInspection( + DestructureIntention::class, + additionalChecker = { declaration -> + declaration !is KtVariableDeclaration && declaration !is KtFunctionLiteral + } +) class DestructureIntention : SelfTargetingRangeIntention( KtDeclaration::class.java, - "Simplify using destructuring declaration" + "Use destructuring declaration" ) { override fun applyTo(element: KtDeclaration, editor: Editor?) { val forLoop = element.parent as? KtForExpression diff --git a/idea/testData/intentions/iterationOverMap/inspectionData/expected.xml b/idea/testData/intentions/iterationOverMap/inspectionData/expected.xml index 72952d43106..0bbd043e2c2 100644 --- a/idea/testData/intentions/iterationOverMap/inspectionData/expected.xml +++ b/idea/testData/intentions/iterationOverMap/inspectionData/expected.xml @@ -4,175 +4,175 @@ 4 light_idea_test_case - Can be simplified using destructuring declaration - Simplify using destructuring declaration + Use destructuring declaration + Use destructuring declaration Simple.kt 5 light_idea_test_case - Can be simplified using destructuring declaration - Simplify using destructuring declaration + Use destructuring declaration + Use destructuring declaration PropertiesNames.kt 5 light_idea_test_case - Can be simplified using destructuring declaration - Simplify using destructuring declaration + Use destructuring declaration + Use destructuring declaration Getters.kt 5 light_idea_test_case - Can be simplified using destructuring declaration - Simplify using destructuring declaration + Use destructuring declaration + Use destructuring declaration DataClassParametersOrder.kt 5 light_idea_test_case - Can be simplified using destructuring declaration - Simplify using destructuring declaration + Use destructuring declaration + Use destructuring declaration DataClass.kt 5 light_idea_test_case - Can be simplified using destructuring declaration - Simplify using destructuring declaration + Use destructuring declaration + Use destructuring declaration EntriesCallIsMissing.kt 6 light_idea_test_case - Can be simplified using destructuring declaration - Simplify using destructuring declaration + Use destructuring declaration + Use destructuring declaration DataClassFirstNPropertiesUsed.kt 5 light_idea_test_case - Can be simplified using destructuring declaration - Simplify using destructuring declaration + Use destructuring declaration + Use destructuring declaration CaretOffset.kt 6 light_idea_test_case - Can be simplified using destructuring declaration - Simplify using destructuring declaration + Use destructuring declaration + Use destructuring declaration DataClassNoVariablesInside.kt 5 light_idea_test_case - Can be simplified using destructuring declaration - Simplify using destructuring declaration + Use destructuring declaration + Use destructuring declaration DataClassNoVariablesMultiUsages.kt 5 light_idea_test_case - Can be simplified using destructuring declaration - Simplify using destructuring declaration + Use destructuring declaration + Use destructuring declaration DataClassPropertyBetweenUsages.kt 5 light_idea_test_case - Can be simplified using destructuring declaration - Simplify using destructuring declaration + Use destructuring declaration + Use destructuring declaration DataClassSecondVariable.kt 5 light_idea_test_case - Can be simplified using destructuring declaration - Simplify using destructuring declaration + Use destructuring declaration + Use destructuring declaration DataClassWithExternalUsage.kt 5 light_idea_test_case - Can be simplified using destructuring declaration - Simplify using destructuring declaration + Use destructuring declaration + Use destructuring declaration DataClassDependentLocal.kt 6 light_idea_test_case - Can be simplified using destructuring declaration - Simplify using destructuring declaration + Use destructuring declaration + Use destructuring declaration DataClassFirstVariable.kt 5 light_idea_test_case - Can be simplified using destructuring declaration - Simplify using destructuring declaration + Use destructuring declaration + Use destructuring declaration MapNoProperties.kt 4 light_idea_test_case - Can be simplified using destructuring declaration - Simplify using destructuring declaration + Use destructuring declaration + Use destructuring declaration ValueOnly.kt 5 light_idea_test_case - Can be simplified using destructuring declaration - Simplify using destructuring declaration + Use destructuring declaration + Use destructuring declaration KeyOnly.kt 5 light_idea_test_case - Can be simplified using destructuring declaration - Simplify using destructuring declaration + Use destructuring declaration + Use destructuring declaration DataClassNotAllPropertiesUsed.kt 5 light_idea_test_case - Can be simplified using destructuring declaration - Simplify using destructuring declaration + Use destructuring declaration + Use destructuring declaration DataClassLast.kt 6 light_idea_test_case - Can be simplified using destructuring declaration - Simplify using destructuring declaration + Use destructuring declaration + Use destructuring declaration DataClassNameConflict.kt 7 light_idea_test_case - Can be simplified using destructuring declaration - Simplify using destructuring declaration + Use destructuring declaration + Use destructuring declaration \ No newline at end of file