[FIR IDE] Mark imports from the same package as unused

This commit is contained in:
Roman Golyshev
2021-08-27 12:40:25 +03:00
committed by Space
parent 824acc2c4f
commit 81768bdaef
@@ -56,6 +56,10 @@ internal class KtFirImportOptimizer(
.toSet()
val referencesEntities = collectReferencedEntities(firFile)
.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 requiredStarImports = referencesEntities.keys
.asSequence()
@@ -168,11 +172,19 @@ internal class KtFirImportOptimizer(
}
private fun saveType(classId: ClassId) {
usedImports.getOrPut(classId.asSingleFqName()) { hashSetOf() } += classId.shortClassName
val importableName = classId.asSingleFqName()
val referencedByName = classId.shortClassName
saveReferencedItem(importableName, referencedByName)
}
private fun saveCallable(resolvedSymbol: FirCallableSymbol<*>, referencedByName: Name) {
val importableName = resolvedSymbol.computeImportableName() ?: return
saveReferencedItem(importableName, referencedByName)
}
private fun saveReferencedItem(importableName: FqName, referencedByName: Name) {
usedImports.getOrPut(importableName) { hashSetOf() } += referencedByName
}
})