[FIR] Add MetadataSymbolProvider

Extract common code from K1 to MetadataUtil
This commit is contained in:
Ivan Kochurkin
2023-01-16 23:24:23 +01:00
committed by Space Team
parent c103da98dd
commit e22359cc10
9 changed files with 166 additions and 36 deletions
@@ -18,6 +18,7 @@ package org.jetbrains.kotlin.cli.jvm.compiler
import com.intellij.openapi.vfs.VirtualFile
import com.intellij.psi.search.GlobalSearchScope
import gnu.trove.THashSet
import org.jetbrains.kotlin.cli.jvm.index.JavaRoot
import org.jetbrains.kotlin.cli.jvm.index.JvmDependenciesIndex
import org.jetbrains.kotlin.load.kotlin.VirtualFileFinder
@@ -49,6 +50,21 @@ class CliVirtualFileFinder(
)?.inputStream
}
override fun findMetadataTopLevelClassesInPackage(packageFqName: FqName): Set<String> {
val result = THashSet<String>()
index.traverseDirectoriesInPackage(packageFqName, continueSearch = { dir, _ ->
for (child in dir.children) {
if (child.extension == MetadataPackageFragment.METADATA_FILE_EXTENSION) {
result.add(child.nameWithoutExtension)
}
}
true
})
return result
}
override fun hasMetadataPackage(fqName: FqName): Boolean {
var found = false
index.traverseDirectoriesInPackage(fqName, continueSearch = { dir, _ ->