KTIJ-26276 [Analysis API] Do not consider single aliased import from the same package as unused
Even when the aliased import comes from the same package, it cannot be removed, because it will break the code Also, add more tests for the imports coming from the same package ^KTIJ-26276 Fixed
This commit is contained in:
+4
-2
@@ -67,8 +67,10 @@ internal class KtFirImportOptimizer(
|
||||
|
||||
val referencesEntities = usedImports
|
||||
.filterNot { (fqName, referencedByNames) ->
|
||||
// when referenced by more than one name, we need to keep the imports with same package
|
||||
fqName.parentOrNull() == file.packageFqName && referencedByNames.size == 1
|
||||
val fromCurrentPackage = fqName.parentOrNull() == file.packageFqName
|
||||
val noAliasedImports = referencedByNames.singleOrNull() == fqName.shortName()
|
||||
|
||||
fromCurrentPackage && noAliasedImports
|
||||
}
|
||||
|
||||
val requiredStarImports = referencesEntities.keys
|
||||
|
||||
+24
@@ -52,6 +52,12 @@ public class FirIdeNormalAnalysisSourceModuleAnalysisApiImportOptimizerTestGener
|
||||
runTest("analysis/analysis-api/testData/components/importOptimizer/analyseImports/unsedObjectWithExtensionFromObject.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("unusedAliasedImportFromSamePackage.kt")
|
||||
public void testUnusedAliasedImportFromSamePackage() throws Exception {
|
||||
runTest("analysis/analysis-api/testData/components/importOptimizer/analyseImports/unusedAliasedImportFromSamePackage.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("unusedAliasedTypeImport.kt")
|
||||
public void testUnusedAliasedTypeImport() throws Exception {
|
||||
@@ -94,6 +100,12 @@ public class FirIdeNormalAnalysisSourceModuleAnalysisApiImportOptimizerTestGener
|
||||
runTest("analysis/analysis-api/testData/components/importOptimizer/analyseImports/unusedImportFromObject.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("unusedImportsFromSamePackage.kt")
|
||||
public void testUnusedImportsFromSamePackage() throws Exception {
|
||||
runTest("analysis/analysis-api/testData/components/importOptimizer/analyseImports/unusedImportsFromSamePackage.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("unusedInvokeOperatorImport.kt")
|
||||
public void testUnusedInvokeOperatorImport() throws Exception {
|
||||
@@ -106,12 +118,24 @@ public class FirIdeNormalAnalysisSourceModuleAnalysisApiImportOptimizerTestGener
|
||||
runTest("analysis/analysis-api/testData/components/importOptimizer/analyseImports/unusedStaticFunctionImportFromJavaChildClass.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("usedAliasedAndRegularImportsFromSamePackage.kt")
|
||||
public void testUsedAliasedAndRegularImportsFromSamePackage() throws Exception {
|
||||
runTest("analysis/analysis-api/testData/components/importOptimizer/analyseImports/usedAliasedAndRegularImportsFromSamePackage.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("usedAliasedFunctionReference.kt")
|
||||
public void testUsedAliasedFunctionReference() throws Exception {
|
||||
runTest("analysis/analysis-api/testData/components/importOptimizer/analyseImports/usedAliasedFunctionReference.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("usedAliasedImportsFromSamePackage.kt")
|
||||
public void testUsedAliasedImportsFromSamePackage() throws Exception {
|
||||
runTest("analysis/analysis-api/testData/components/importOptimizer/analyseImports/usedAliasedImportsFromSamePackage.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("usedAliasedTypeImport.kt")
|
||||
public void testUsedAliasedTypeImport() throws Exception {
|
||||
|
||||
Reference in New Issue
Block a user