[FIR] Get rid of FirSymbolProvider.getNestedClassifierScope
This commit is contained in:
@@ -13,9 +13,9 @@ import org.jetbrains.kotlin.analyzer.ModuleInfo
|
||||
import org.jetbrains.kotlin.fir.*
|
||||
import org.jetbrains.kotlin.fir.analysis.registerCheckersComponent
|
||||
import org.jetbrains.kotlin.fir.java.deserialization.KotlinDeserializedJvmSymbolsProvider
|
||||
import org.jetbrains.kotlin.fir.resolve.calls.jvm.registerJvmCallConflictResolverFactory
|
||||
import org.jetbrains.kotlin.fir.resolve.providers.FirProvider
|
||||
import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProvider
|
||||
import org.jetbrains.kotlin.fir.resolve.calls.jvm.registerJvmCallConflictResolverFactory
|
||||
import org.jetbrains.kotlin.fir.resolve.providers.impl.*
|
||||
import org.jetbrains.kotlin.fir.resolve.scopes.wrapScopeWithJvmMapped
|
||||
import org.jetbrains.kotlin.fir.scopes.KotlinScopeProvider
|
||||
@@ -48,6 +48,7 @@ class FirJavaModuleBasedSession private constructor(
|
||||
register(
|
||||
FirSymbolProvider::class,
|
||||
FirCompositeSymbolProvider(
|
||||
this,
|
||||
listOf(
|
||||
firProvider.symbolProvider,
|
||||
JavaSymbolProvider(this, sessionProvider.project, scope),
|
||||
@@ -97,6 +98,7 @@ class FirLibrarySession private constructor(
|
||||
register(
|
||||
FirSymbolProvider::class,
|
||||
FirCompositeSymbolProvider(
|
||||
this,
|
||||
listOf(
|
||||
KotlinDeserializedJvmSymbolsProvider(
|
||||
this, sessionProvider.project,
|
||||
|
||||
@@ -24,9 +24,6 @@ import org.jetbrains.kotlin.fir.resolve.providers.AbstractFirSymbolProviderWithC
|
||||
import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProviderInternals
|
||||
import org.jetbrains.kotlin.fir.resolve.providers.SymbolProviderCache
|
||||
import org.jetbrains.kotlin.fir.resolve.scopes.wrapScopeWithJvmMapped
|
||||
import org.jetbrains.kotlin.fir.scopes.FirScope
|
||||
import org.jetbrains.kotlin.fir.scopes.impl.lazyNestedClassifierScope
|
||||
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.types.builder.buildResolvedTypeRef
|
||||
@@ -45,10 +42,10 @@ import org.jetbrains.kotlin.util.OperatorNameConventions
|
||||
import org.jetbrains.kotlin.utils.addIfNotNull
|
||||
|
||||
class JavaSymbolProvider(
|
||||
val session: FirSession,
|
||||
session: FirSession,
|
||||
val project: Project,
|
||||
private val searchScope: GlobalSearchScope,
|
||||
) : AbstractFirSymbolProviderWithCache<FirRegularClassSymbol>() {
|
||||
) : AbstractFirSymbolProviderWithCache<FirRegularClassSymbol>(session) {
|
||||
companion object {
|
||||
private val VALUE_METHOD_NAME = Name.identifier("value")
|
||||
}
|
||||
@@ -66,20 +63,6 @@ class JavaSymbolProvider(
|
||||
@FirSymbolProviderInternals
|
||||
override fun getTopLevelCallableSymbolsTo(destination: MutableList<FirCallableSymbol<*>>, packageFqName: FqName, name: Name) {}
|
||||
|
||||
override fun getNestedClassifierScope(classId: ClassId): FirScope? {
|
||||
val symbol = this.getClassLikeSymbolByFqName(classId) ?: return null
|
||||
val regularClass = symbol.fir
|
||||
return if (regularClass is FirJavaClass) {
|
||||
lazyNestedClassifierScope(
|
||||
classId,
|
||||
existingNames = regularClass.existingNestedClassifierNames,
|
||||
symbolProvider = this,
|
||||
)
|
||||
} else {
|
||||
nestedClassifierScope(regularClass)
|
||||
}
|
||||
}
|
||||
|
||||
private fun JavaTypeParameter.toFirTypeParameterSymbol(
|
||||
javaTypeParameterStack: JavaTypeParameterStack
|
||||
): Pair<FirTypeParameterSymbol, Boolean> {
|
||||
|
||||
+2
-10
@@ -29,9 +29,7 @@ import org.jetbrains.kotlin.fir.resolve.providers.AbstractFirSymbolProviderWithC
|
||||
import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProviderInternals
|
||||
import org.jetbrains.kotlin.fir.resolve.providers.SymbolProviderCache
|
||||
import org.jetbrains.kotlin.fir.resolve.providers.getClassDeclaredCallableSymbols
|
||||
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.ConeClassLikeLookupTag
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.*
|
||||
import org.jetbrains.kotlin.fir.types.FirResolvedTypeRef
|
||||
@@ -56,14 +54,14 @@ import org.jetbrains.kotlin.serialization.deserialization.getName
|
||||
import org.jetbrains.kotlin.utils.addToStdlib.firstNotNullResult
|
||||
|
||||
class KotlinDeserializedJvmSymbolsProvider(
|
||||
val session: FirSession,
|
||||
session: FirSession,
|
||||
val project: Project,
|
||||
private val packagePartProvider: PackagePartProvider,
|
||||
private val javaSymbolProvider: JavaSymbolProvider,
|
||||
private val kotlinClassFinder: KotlinClassFinder,
|
||||
private val javaClassFinder: JavaClassFinder,
|
||||
private val kotlinScopeProvider: KotlinScopeProvider,
|
||||
) : AbstractFirSymbolProviderWithCache<FirRegularClassSymbol>() {
|
||||
) : AbstractFirSymbolProviderWithCache<FirRegularClassSymbol>(session) {
|
||||
private val typeAliasCache = SymbolProviderCache<ClassId, FirTypeAliasSymbol>()
|
||||
private val packagePartsCache = SymbolProviderCache<FqName, Collection<PackagePartsCacheData>>()
|
||||
|
||||
@@ -391,12 +389,6 @@ class KotlinDeserializedJvmSymbolsProvider(
|
||||
}
|
||||
}
|
||||
|
||||
override fun getNestedClassifierScope(classId: ClassId): FirScope? {
|
||||
return findRegularClass(classId)?.let {
|
||||
nestedClassifierScope(it)
|
||||
}
|
||||
}
|
||||
|
||||
private fun getPackageParts(packageFqName: FqName): Collection<PackagePartsCacheData> {
|
||||
return packagePartsCache.lookupCacheOrCalculate(packageFqName) {
|
||||
try {
|
||||
|
||||
Reference in New Issue
Block a user