FIR IDE: implement FirIdeProvider.getClassNamesInPackage

#KT-41048 fixed
This commit is contained in:
Ilya Kirillov
2020-12-31 12:22:05 +01:00
parent a52674f181
commit c131983188
2 changed files with 8 additions and 4 deletions
@@ -15,6 +15,7 @@ import org.jetbrains.kotlin.idea.fir.low.level.api.IndexHelper.Companion.asStrin
import org.jetbrains.kotlin.idea.stubindex.* import org.jetbrains.kotlin.idea.stubindex.*
import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.ClassId
import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.psi.KtFunction import org.jetbrains.kotlin.psi.KtFunction
import org.jetbrains.kotlin.psi.KtNamedFunction import org.jetbrains.kotlin.psi.KtNamedFunction
import org.jetbrains.kotlin.psi.KtProperty import org.jetbrains.kotlin.psi.KtProperty
@@ -66,6 +67,11 @@ public class IndexHelper(val project: Project, private val scope: GlobalSearchSc
fun getTopLevelFunctionsInPackage(packageFqName: FqName): Collection<KtFunction> = fun getTopLevelFunctionsInPackage(packageFqName: FqName): Collection<KtFunction> =
KotlinTopLevelFunctionByPackageIndex.getInstance().get(packageFqName.asStringForIndexes(), project, scope) KotlinTopLevelFunctionByPackageIndex.getInstance().get(packageFqName.asStringForIndexes(), project, scope)
fun getClassNamesInPackage(packageFqName: FqName): Set<Name> =
KotlinTopLevelClassByPackageIndex.getInstance()
.get(packageFqName.asStringForIndexes(), project, scope)
.mapNotNullTo(hashSetOf()) { it.nameAsName }
companion object { companion object {
private fun CallableId.asStringForIndexes(): String = private fun CallableId.asStringForIndexes(): String =
@@ -114,10 +114,8 @@ internal class FirIdeProvider(
TODO() TODO()
} }
override fun getClassNamesInPackage(fqName: FqName): Set<Name> { override fun getClassNamesInPackage(fqName: FqName): Set<Name> =
// TODO: KT-41048 indexHelper.getClassNamesInPackage(fqName)
return emptySet()
}
@NoMutableState @NoMutableState
private inner class SymbolProvider : FirSymbolProvider(session) { private inner class SymbolProvider : FirSymbolProvider(session) {