LL API: fix KtPackageProvider package existent checks for tests
Before it was not able to check nested packages for existence Also, implement unimplemented getKotlinSubPackageFqNames
This commit is contained in:
committed by
teamcityserver
parent
4fe240d1b4
commit
7ba8e7d1d3
+16
-3
@@ -15,13 +15,26 @@ internal class KtPackageProviderTestImpl(
|
|||||||
scope: GlobalSearchScope,
|
scope: GlobalSearchScope,
|
||||||
files: Collection<KtFile>
|
files: Collection<KtFile>
|
||||||
) : KtPackageProvider() {
|
) : KtPackageProvider() {
|
||||||
private val filesInScope = files.filter { scope.contains(it.virtualFile) }
|
|
||||||
|
private val packageToSubPackageNames: Map<FqName, Set<Name>> = run {
|
||||||
|
val filesInScope = files.filter { scope.contains(it.virtualFile) }
|
||||||
|
val packages = mutableMapOf<FqName, MutableSet<Name>>()
|
||||||
|
filesInScope.forEach { file ->
|
||||||
|
var currentPackage = FqName.ROOT
|
||||||
|
for (subPackage in file.packageFqName.pathSegments()) {
|
||||||
|
packages.getOrPut(currentPackage) { mutableSetOf() } += subPackage
|
||||||
|
currentPackage = currentPackage.child(subPackage)
|
||||||
|
}
|
||||||
|
packages.computeIfAbsent(currentPackage) { mutableSetOf() }
|
||||||
|
}
|
||||||
|
packages
|
||||||
|
}
|
||||||
|
|
||||||
override fun isPackageExists(packageFqName: FqName): Boolean {
|
override fun isPackageExists(packageFqName: FqName): Boolean {
|
||||||
return filesInScope.any { it.packageFqName == packageFqName }
|
return packageFqName in packageToSubPackageNames
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getKotlinSubPackageFqNames(packageFqName: FqName): Set<Name> {
|
override fun getKotlinSubPackageFqNames(packageFqName: FqName): Set<Name> {
|
||||||
TODO("Not yet implemented")
|
return packageToSubPackageNames[packageFqName] ?: emptySet()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user