[analysis api] optimize search for declarations in IDE

This commit is contained in:
Ilya Kirillov
2022-04-17 19:00:43 +02:00
parent 9088da7b33
commit 9a562a0293
6 changed files with 19 additions and 13 deletions
@@ -67,7 +67,7 @@ internal object FirDeserializedDeclarationSourceProvider {
classByClassId(klass.symbol.classId, klass.scope(project), project)
private fun provideSourceForTypeAlias(alias: FirTypeAlias, project: Project): PsiElement? {
val candidates = project.createDeclarationProvider(alias.scope(project)).getTypeAliasesByClassId(alias.symbol.classId)
val candidates = project.createDeclarationProvider(alias.scope(project)).getAllTypeAliasesByClassId(alias.symbol.classId)
return candidates.firstOrNull(KtElement::isCompiled)
}
@@ -120,7 +120,7 @@ internal object FirDeserializedDeclarationSourceProvider {
private fun classByClassId(classId: ClassId, scope: GlobalSearchScope, project: Project): KtClassOrObject? {
val correctedClassId = classIdMapping[classId] ?: classId
return project.createDeclarationProvider(scope)
.getClassesByClassId(correctedClassId)
.getAllClassesByClassId(correctedClassId)
.firstOrNull(KtElement::isCompiled)
}