[FIR] Get rid of FirSymbolProvider.getClassNamesInPackage
There was one non-removable usage of those function in FirJavaElementFinder and three non-trivial implementation - `FirProvider.SymbolProvider` - `KotlinDeserializedJvmSymbolsProvider` - `FirBuiltinSymbolProvider` First implementation was moved to `FirProvider` and other two was deleted, because in FirJavaElementFinder we need lookup only in classes from source code, so such methods in library providers are useless #KT-41048
This commit is contained in:
@@ -43,13 +43,12 @@ class FirJavaElementFinder(
|
||||
private val firProvider = session.firProvider
|
||||
|
||||
override fun findPackage(qualifiedName: String): PsiPackage? {
|
||||
if (firProvider.symbolProvider.getClassNamesInPackage(FqName(qualifiedName)).isEmpty()) return null
|
||||
if (firProvider.symbolProvider.getPackage(FqName(qualifiedName)) == null) return null
|
||||
return PsiPackageImpl(psiManager, qualifiedName)
|
||||
}
|
||||
|
||||
override fun getClasses(psiPackage: PsiPackage, scope: GlobalSearchScope): Array<PsiClass> {
|
||||
return firProvider.symbolProvider
|
||||
.getClassNamesInPackage(FqName(psiPackage.qualifiedName))
|
||||
return firProvider.getClassNamesInPackage(FqName(psiPackage.qualifiedName))
|
||||
.mapNotNull { findClass(psiPackage.qualifiedName + "." + it.identifier, scope) }
|
||||
.toTypedArray()
|
||||
}
|
||||
|
||||
-5
@@ -408,11 +408,6 @@ class KotlinDeserializedJvmSymbolsProvider(
|
||||
}
|
||||
}
|
||||
|
||||
override fun getClassNamesInPackage(fqName: FqName): Set<Name> =
|
||||
javaClassFinder.findPackage(fqName)
|
||||
?.getClasses { true }.orEmpty()
|
||||
.mapTo(sortedSetOf(), JavaClass::name)
|
||||
|
||||
private fun findRegularClass(classId: ClassId): FirRegularClass? =
|
||||
getClassLikeSymbolByFqName(classId)?.fir as? FirRegularClass
|
||||
|
||||
|
||||
@@ -11,6 +11,7 @@ import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirClassLikeSymbol
|
||||
import org.jetbrains.kotlin.name.ClassId
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
|
||||
@RequiresOptIn
|
||||
annotation class FirProviderInternals
|
||||
@@ -44,4 +45,6 @@ abstract class FirProvider : FirSessionComponent {
|
||||
|
||||
@FirProviderInternals
|
||||
abstract fun recordGeneratedMember(owner: FirAnnotatedDeclaration, klass: FirDeclaration)
|
||||
|
||||
abstract fun getClassNamesInPackage(fqName: FqName): Set<Name>
|
||||
}
|
||||
|
||||
-3
@@ -56,9 +56,6 @@ abstract class FirSymbolProvider : FirSessionComponent {
|
||||
|
||||
abstract fun getNestedClassifierScope(classId: ClassId): FirScope?
|
||||
|
||||
@Deprecated("will be deleted soon")
|
||||
open fun getClassNamesInPackage(fqName: FqName): Set<Name> = emptySet()
|
||||
|
||||
abstract fun getPackage(fqName: FqName): FqName? // TODO: Replace to symbol sometime
|
||||
}
|
||||
|
||||
|
||||
-6
@@ -257,12 +257,6 @@ class FirBuiltinSymbolProvider(val session: FirSession, val kotlinScopeProvider:
|
||||
}
|
||||
}
|
||||
|
||||
override fun getClassNamesInPackage(fqName: FqName): Set<Name> {
|
||||
return allPackageFragments[fqName]?.flatMapTo(mutableSetOf()) {
|
||||
it.getAllClassNames()
|
||||
} ?: emptySet()
|
||||
}
|
||||
|
||||
private fun findRegularClass(classId: ClassId): FirRegularClass? =
|
||||
getClassLikeSymbolByFqName(classId)?.fir
|
||||
|
||||
|
||||
-4
@@ -36,8 +36,4 @@ class FirCompositeSymbolProvider(val providers: List<FirSymbolProvider>) : FirSy
|
||||
override fun getClassLikeSymbolByFqName(classId: ClassId): FirClassLikeSymbol<*>? {
|
||||
return providers.firstNotNullResult { it.getClassLikeSymbolByFqName(classId) }
|
||||
}
|
||||
|
||||
override fun getClassNamesInPackage(fqName: FqName): Set<Name> {
|
||||
return providers.flatMapTo(mutableSetOf()) { it.getClassNamesInPackage(fqName) }
|
||||
}
|
||||
}
|
||||
|
||||
+1
-5
@@ -7,8 +7,8 @@ package org.jetbrains.kotlin.fir.resolve.providers.impl
|
||||
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.dependenciesWithoutSelf
|
||||
import org.jetbrains.kotlin.fir.resolve.providers.AbstractFirSymbolProvider
|
||||
import org.jetbrains.kotlin.fir.resolve.firSymbolProvider
|
||||
import org.jetbrains.kotlin.fir.resolve.providers.AbstractFirSymbolProvider
|
||||
import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProviderInternals
|
||||
import org.jetbrains.kotlin.fir.scopes.FirScope
|
||||
import org.jetbrains.kotlin.fir.symbols.CallableId
|
||||
@@ -63,8 +63,4 @@ open class FirDependenciesSymbolProviderImpl(val session: FirSession) : Abstract
|
||||
null
|
||||
}
|
||||
}
|
||||
|
||||
override fun getClassNamesInPackage(fqName: FqName): Set<Name> {
|
||||
return dependencyProviders.flatMapTo(mutableSetOf()) { it.getClassNamesInPackage(fqName) }
|
||||
}
|
||||
}
|
||||
|
||||
+7
-5
@@ -18,7 +18,9 @@ import org.jetbrains.kotlin.fir.scopes.FirScope
|
||||
import org.jetbrains.kotlin.fir.scopes.KotlinScopeProvider
|
||||
import org.jetbrains.kotlin.fir.scopes.impl.nestedClassifierScope
|
||||
import org.jetbrains.kotlin.fir.symbols.CallableId
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.*
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirAccessorSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirClassLikeSymbol
|
||||
import org.jetbrains.kotlin.fir.visitors.FirDefaultVisitor
|
||||
import org.jetbrains.kotlin.name.ClassId
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
@@ -76,10 +78,6 @@ class FirProviderImpl(val session: FirSession, val kotlinScopeProvider: KotlinSc
|
||||
if (getFirFilesByPackage(fqName).isNotEmpty()) return fqName
|
||||
return null
|
||||
}
|
||||
|
||||
override fun getClassNamesInPackage(fqName: FqName): Set<Name> {
|
||||
return state.classesInPackage[fqName] ?: emptySet()
|
||||
}
|
||||
}
|
||||
|
||||
@FirProviderInternals
|
||||
@@ -259,6 +257,10 @@ class FirProviderImpl(val session: FirSession, val kotlinScopeProvider: KotlinSc
|
||||
state.setFrom(newState)
|
||||
}
|
||||
}
|
||||
|
||||
override fun getClassNamesInPackage(fqName: FqName): Set<Name> {
|
||||
return state.classesInPackage[fqName] ?: emptySet()
|
||||
}
|
||||
}
|
||||
|
||||
private const val rebuildIndex = true
|
||||
|
||||
+5
@@ -112,6 +112,11 @@ internal class FirIdeProvider(
|
||||
TODO()
|
||||
}
|
||||
|
||||
override fun getClassNamesInPackage(fqName: FqName): Set<Name> {
|
||||
// TODO: KT-41048
|
||||
return emptySet()
|
||||
}
|
||||
|
||||
private inner class SymbolProvider : FirSymbolProvider() {
|
||||
override fun getTopLevelCallableSymbols(packageFqName: FqName, name: Name): List<FirCallableSymbol<*>> =
|
||||
providerHelper.getTopLevelCallableSymbols(packageFqName, name)
|
||||
|
||||
+2
-3
@@ -5,7 +5,6 @@
|
||||
|
||||
package org.jetbrains.kotlin.idea.frontend.api.fir.scopes
|
||||
|
||||
import org.jetbrains.kotlin.fir.resolve.firSymbolProvider
|
||||
import org.jetbrains.kotlin.fir.scopes.impl.FirPackageMemberScope
|
||||
import org.jetbrains.kotlin.idea.frontend.api.ValidityToken
|
||||
import org.jetbrains.kotlin.idea.frontend.api.ValidityTokenOwner
|
||||
@@ -25,7 +24,6 @@ internal class KtFirPackageScope(
|
||||
) : KtPackageScope, ValidityTokenOwner {
|
||||
private val firScope by weakRef(firScope)
|
||||
override val fqName: FqName get() = firScope.fqName
|
||||
private val provider get() = firScope.session.firSymbolProvider
|
||||
|
||||
override fun getCallableNames(): Set<Name> = withValidityAssertion {
|
||||
// TODO: KT-41048
|
||||
@@ -33,7 +31,8 @@ internal class KtFirPackageScope(
|
||||
}
|
||||
|
||||
override fun getClassLikeSymbolNames(): Set<Name> = withValidityAssertion {
|
||||
provider.getClassNamesInPackage(fqName)
|
||||
// TODO: KT-41048
|
||||
emptySet()
|
||||
}
|
||||
|
||||
override fun getCallableSymbols(): Sequence<KtCallableSymbol> = withValidityAssertion {
|
||||
|
||||
Reference in New Issue
Block a user