From f5307173b5630da5960c6273a345976475e01c09 Mon Sep 17 00:00:00 2001 From: Roman Golyshev Date: Thu, 7 Sep 2023 17:43:15 +0200 Subject: [PATCH] KTIJ-26959 [AA] Do not ignore underscore named properties in `KtFirImportOptimizer` After the fix for the KT-60904 issue (c963eadb), there are unnamed declarations created even for the unused variables in destructuring declarations Because of this, we can actually align testData for K1 and K2. It seems like KT-59504 is no longer relevant and can be marked as obsolete because of the KT-60904 fix ^KTIJ-26959 Fixed --- ...eAnalysisApiImportOptimizerTestGenerated.java | 12 ++++++++++++ .../api/fir/components/KtFirImportOptimizer.kt | 5 ----- ...eAnalysisApiImportOptimizerTestGenerated.java | 12 ++++++++++++ ...eAnalysisApiImportOptimizerTestGenerated.java | 12 ++++++++++++ ...unction_componentOperator.descriptors.imports | 1 - ...edExtensionFunction_componentOperator.imports | 3 +-- ...usedType_underscoreNameInCatchSection.imports | 1 + .../unusedType_underscoreNameInCatchSection.kt | 13 +++++++++++++ ...oreVariableInDestructuringDeclaration.imports | 1 + ...derscoreVariableInDestructuringDeclaration.kt | 16 ++++++++++++++++ 10 files changed, 68 insertions(+), 8 deletions(-) delete mode 100644 analysis/analysis-api/testData/components/importOptimizer/analyseImports/unusedExtensionFunction_componentOperator.descriptors.imports create mode 100644 analysis/analysis-api/testData/components/importOptimizer/analyseImports/unusedType_underscoreNameInCatchSection.imports create mode 100644 analysis/analysis-api/testData/components/importOptimizer/analyseImports/unusedType_underscoreNameInCatchSection.kt create mode 100644 analysis/analysis-api/testData/components/importOptimizer/analyseImports/unusedType_underscoreVariableInDestructuringDeclaration.imports create mode 100644 analysis/analysis-api/testData/components/importOptimizer/analyseImports/unusedType_underscoreVariableInDestructuringDeclaration.kt diff --git a/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/components/importOptimizer/Fe10IdeNormalAnalysisSourceModuleAnalysisApiImportOptimizerTestGenerated.java b/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/components/importOptimizer/Fe10IdeNormalAnalysisSourceModuleAnalysisApiImportOptimizerTestGenerated.java index 73a3c6eecdd..96bf87b8c3f 100644 --- a/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/components/importOptimizer/Fe10IdeNormalAnalysisSourceModuleAnalysisApiImportOptimizerTestGenerated.java +++ b/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/components/importOptimizer/Fe10IdeNormalAnalysisSourceModuleAnalysisApiImportOptimizerTestGenerated.java @@ -136,6 +136,18 @@ public class Fe10IdeNormalAnalysisSourceModuleAnalysisApiImportOptimizerTestGene runTest("analysis/analysis-api/testData/components/importOptimizer/analyseImports/unusedTypeAsVarargType.kt"); } + @Test + @TestMetadata("unusedType_underscoreNameInCatchSection.kt") + public void testUnusedType_underscoreNameInCatchSection() throws Exception { + runTest("analysis/analysis-api/testData/components/importOptimizer/analyseImports/unusedType_underscoreNameInCatchSection.kt"); + } + + @Test + @TestMetadata("unusedType_underscoreVariableInDestructuringDeclaration.kt") + public void testUnusedType_underscoreVariableInDestructuringDeclaration() throws Exception { + runTest("analysis/analysis-api/testData/components/importOptimizer/analyseImports/unusedType_underscoreVariableInDestructuringDeclaration.kt"); + } + @Test @TestMetadata("usedAliasedAndRegularImportsFromSamePackage.kt") public void testUsedAliasedAndRegularImportsFromSamePackage() throws Exception { diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirImportOptimizer.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirImportOptimizer.kt index 5fa21f32ebd..d192e829e9e 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirImportOptimizer.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirImportOptimizer.kt @@ -132,11 +132,6 @@ internal class KtFirImportOptimizer( super.visitImplicitInvokeCall(implicitInvokeCall) } - override fun visitProperty(property: FirProperty) { - if (property.name == SpecialNames.UNDERSCORE_FOR_UNUSED_VAR) return - super.visitProperty(property) - } - override fun visitComponentCall(componentCall: FirComponentCall) { processFunctionCall(componentCall) super.visitComponentCall(componentCall) diff --git a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/importOptimizer/FirIdeNormalAnalysisSourceModuleAnalysisApiImportOptimizerTestGenerated.java b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/importOptimizer/FirIdeNormalAnalysisSourceModuleAnalysisApiImportOptimizerTestGenerated.java index da7020ed5a8..c7531051772 100644 --- a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/importOptimizer/FirIdeNormalAnalysisSourceModuleAnalysisApiImportOptimizerTestGenerated.java +++ b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/importOptimizer/FirIdeNormalAnalysisSourceModuleAnalysisApiImportOptimizerTestGenerated.java @@ -136,6 +136,18 @@ public class FirIdeNormalAnalysisSourceModuleAnalysisApiImportOptimizerTestGener runTest("analysis/analysis-api/testData/components/importOptimizer/analyseImports/unusedTypeAsVarargType.kt"); } + @Test + @TestMetadata("unusedType_underscoreNameInCatchSection.kt") + public void testUnusedType_underscoreNameInCatchSection() throws Exception { + runTest("analysis/analysis-api/testData/components/importOptimizer/analyseImports/unusedType_underscoreNameInCatchSection.kt"); + } + + @Test + @TestMetadata("unusedType_underscoreVariableInDestructuringDeclaration.kt") + public void testUnusedType_underscoreVariableInDestructuringDeclaration() throws Exception { + runTest("analysis/analysis-api/testData/components/importOptimizer/analyseImports/unusedType_underscoreVariableInDestructuringDeclaration.kt"); + } + @Test @TestMetadata("usedAliasedAndRegularImportsFromSamePackage.kt") public void testUsedAliasedAndRegularImportsFromSamePackage() throws Exception { diff --git a/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/importOptimizer/FirStandaloneNormalAnalysisSourceModuleAnalysisApiImportOptimizerTestGenerated.java b/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/importOptimizer/FirStandaloneNormalAnalysisSourceModuleAnalysisApiImportOptimizerTestGenerated.java index 3b1bede42a7..0ec2e56e6e5 100644 --- a/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/importOptimizer/FirStandaloneNormalAnalysisSourceModuleAnalysisApiImportOptimizerTestGenerated.java +++ b/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/importOptimizer/FirStandaloneNormalAnalysisSourceModuleAnalysisApiImportOptimizerTestGenerated.java @@ -136,6 +136,18 @@ public class FirStandaloneNormalAnalysisSourceModuleAnalysisApiImportOptimizerTe runTest("analysis/analysis-api/testData/components/importOptimizer/analyseImports/unusedTypeAsVarargType.kt"); } + @Test + @TestMetadata("unusedType_underscoreNameInCatchSection.kt") + public void testUnusedType_underscoreNameInCatchSection() throws Exception { + runTest("analysis/analysis-api/testData/components/importOptimizer/analyseImports/unusedType_underscoreNameInCatchSection.kt"); + } + + @Test + @TestMetadata("unusedType_underscoreVariableInDestructuringDeclaration.kt") + public void testUnusedType_underscoreVariableInDestructuringDeclaration() throws Exception { + runTest("analysis/analysis-api/testData/components/importOptimizer/analyseImports/unusedType_underscoreVariableInDestructuringDeclaration.kt"); + } + @Test @TestMetadata("usedAliasedAndRegularImportsFromSamePackage.kt") public void testUsedAliasedAndRegularImportsFromSamePackage() throws Exception { diff --git a/analysis/analysis-api/testData/components/importOptimizer/analyseImports/unusedExtensionFunction_componentOperator.descriptors.imports b/analysis/analysis-api/testData/components/importOptimizer/analyseImports/unusedExtensionFunction_componentOperator.descriptors.imports deleted file mode 100644 index 82445bc5675..00000000000 --- a/analysis/analysis-api/testData/components/importOptimizer/analyseImports/unusedExtensionFunction_componentOperator.descriptors.imports +++ /dev/null @@ -1 +0,0 @@ -dependency.component3 diff --git a/analysis/analysis-api/testData/components/importOptimizer/analyseImports/unusedExtensionFunction_componentOperator.imports b/analysis/analysis-api/testData/components/importOptimizer/analyseImports/unusedExtensionFunction_componentOperator.imports index 2f072d9eaff..82445bc5675 100644 --- a/analysis/analysis-api/testData/components/importOptimizer/analyseImports/unusedExtensionFunction_componentOperator.imports +++ b/analysis/analysis-api/testData/components/importOptimizer/analyseImports/unusedExtensionFunction_componentOperator.imports @@ -1,2 +1 @@ -dependency.component2 -dependency.component3 \ No newline at end of file +dependency.component3 diff --git a/analysis/analysis-api/testData/components/importOptimizer/analyseImports/unusedType_underscoreNameInCatchSection.imports b/analysis/analysis-api/testData/components/importOptimizer/analyseImports/unusedType_underscoreNameInCatchSection.imports new file mode 100644 index 00000000000..8b137891791 --- /dev/null +++ b/analysis/analysis-api/testData/components/importOptimizer/analyseImports/unusedType_underscoreNameInCatchSection.imports @@ -0,0 +1 @@ + diff --git a/analysis/analysis-api/testData/components/importOptimizer/analyseImports/unusedType_underscoreNameInCatchSection.kt b/analysis/analysis-api/testData/components/importOptimizer/analyseImports/unusedType_underscoreNameInCatchSection.kt new file mode 100644 index 00000000000..1fa22aa9a43 --- /dev/null +++ b/analysis/analysis-api/testData/components/importOptimizer/analyseImports/unusedType_underscoreNameInCatchSection.kt @@ -0,0 +1,13 @@ +// FILE: main.kt +package test + +import dependency.MyException + +fun usage() { + try {} catch (_: MyException) {} +} + +// FILE: dependency.kt +package dependency + +class MyException : RuntimeException() \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/importOptimizer/analyseImports/unusedType_underscoreVariableInDestructuringDeclaration.imports b/analysis/analysis-api/testData/components/importOptimizer/analyseImports/unusedType_underscoreVariableInDestructuringDeclaration.imports new file mode 100644 index 00000000000..8b137891791 --- /dev/null +++ b/analysis/analysis-api/testData/components/importOptimizer/analyseImports/unusedType_underscoreVariableInDestructuringDeclaration.imports @@ -0,0 +1 @@ + diff --git a/analysis/analysis-api/testData/components/importOptimizer/analyseImports/unusedType_underscoreVariableInDestructuringDeclaration.kt b/analysis/analysis-api/testData/components/importOptimizer/analyseImports/unusedType_underscoreVariableInDestructuringDeclaration.kt new file mode 100644 index 00000000000..88d67f5be7c --- /dev/null +++ b/analysis/analysis-api/testData/components/importOptimizer/analyseImports/unusedType_underscoreVariableInDestructuringDeclaration.kt @@ -0,0 +1,16 @@ +// FILE: main.kt +package test + +import dependency.MyClass +import dependency.Holder + +fun usage(holder: Holder) { + val (one, _: MyClass) = holder +} + +// FILE: dependency.kt +package dependency + +class MyClass + +data class Holder(val one: MyClass, val two: MyClass)