FIR: get rid of symbolProvider.getClassDeclaredMemberScope at all
This commit is contained in:
@@ -64,12 +64,6 @@ class JavaSymbolProvider(
|
|||||||
override fun getTopLevelCallableSymbols(packageFqName: FqName, name: Name): List<FirCallableSymbol<*>> =
|
override fun getTopLevelCallableSymbols(packageFqName: FqName, name: Name): List<FirCallableSymbol<*>> =
|
||||||
emptyList()
|
emptyList()
|
||||||
|
|
||||||
// NB: looks like it's better not to use this function at all...
|
|
||||||
override fun getClassDeclaredMemberScope(classId: ClassId): FirScope? {
|
|
||||||
// Anyway we cannot build correct declared member scope here
|
|
||||||
return null
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun getClassUseSiteMemberScope(
|
override fun getClassUseSiteMemberScope(
|
||||||
classId: ClassId,
|
classId: ClassId,
|
||||||
useSiteSession: FirSession,
|
useSiteSession: FirSession,
|
||||||
|
|||||||
-6
@@ -29,7 +29,6 @@ import org.jetbrains.kotlin.fir.references.impl.FirErrorNamedReferenceImpl
|
|||||||
import org.jetbrains.kotlin.fir.references.impl.FirResolvedNamedReferenceImpl
|
import org.jetbrains.kotlin.fir.references.impl.FirResolvedNamedReferenceImpl
|
||||||
import org.jetbrains.kotlin.fir.resolve.*
|
import org.jetbrains.kotlin.fir.resolve.*
|
||||||
import org.jetbrains.kotlin.fir.scopes.FirScope
|
import org.jetbrains.kotlin.fir.scopes.FirScope
|
||||||
import org.jetbrains.kotlin.fir.scopes.impl.declaredMemberScope
|
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.*
|
import org.jetbrains.kotlin.fir.symbols.impl.*
|
||||||
import org.jetbrains.kotlin.fir.types.FirResolvedTypeRef
|
import org.jetbrains.kotlin.fir.types.FirResolvedTypeRef
|
||||||
import org.jetbrains.kotlin.fir.types.impl.FirErrorTypeRefImpl
|
import org.jetbrains.kotlin.fir.types.impl.FirErrorTypeRefImpl
|
||||||
@@ -393,11 +392,6 @@ class KotlinDeserializedJvmSymbolsProvider(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getClassDeclaredMemberScope(classId: ClassId) =
|
|
||||||
findRegularClass(classId)?.let {
|
|
||||||
declaredMemberScope(it)
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun getPackageParts(packageFqName: FqName): Collection<PackagePartsCacheData> {
|
private fun getPackageParts(packageFqName: FqName): Collection<PackagePartsCacheData> {
|
||||||
return packagePartsCache.getOrPut(packageFqName) {
|
return packagePartsCache.getOrPut(packageFqName) {
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -53,7 +53,6 @@ abstract class FirSymbolProvider : FirSessionComponent {
|
|||||||
|
|
||||||
abstract fun getTopLevelCallableSymbols(packageFqName: FqName, name: Name): List<FirCallableSymbol<*>>
|
abstract fun getTopLevelCallableSymbols(packageFqName: FqName, name: Name): List<FirCallableSymbol<*>>
|
||||||
|
|
||||||
abstract fun getClassDeclaredMemberScope(classId: ClassId): FirScope?
|
|
||||||
abstract fun getClassUseSiteMemberScope(
|
abstract fun getClassUseSiteMemberScope(
|
||||||
classId: ClassId,
|
classId: ClassId,
|
||||||
useSiteSession: FirSession,
|
useSiteSession: FirSession,
|
||||||
|
|||||||
-2
@@ -29,8 +29,6 @@ class FirCompositeSymbolProvider(val providers: List<FirSymbolProvider>) : FirSy
|
|||||||
return providers.flatMap { it.getTopLevelCallableSymbols(packageFqName, name) }
|
return providers.flatMap { it.getTopLevelCallableSymbols(packageFqName, name) }
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getClassDeclaredMemberScope(classId: ClassId) = providers.firstNotNullResult { it.getClassDeclaredMemberScope(classId) }
|
|
||||||
|
|
||||||
override fun getPackage(fqName: FqName): FqName? {
|
override fun getPackage(fqName: FqName): FqName? {
|
||||||
return providers.firstNotNullResult { it.getPackage(fqName) }
|
return providers.firstNotNullResult { it.getPackage(fqName) }
|
||||||
}
|
}
|
||||||
|
|||||||
-3
@@ -33,9 +33,6 @@ class FirDependenciesSymbolProviderImpl(val session: FirSession) : AbstractFirSy
|
|||||||
} ?: emptyList()
|
} ?: emptyList()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getClassDeclaredMemberScope(classId: ClassId) =
|
|
||||||
dependencyProviders.firstNotNullResult { it.getClassDeclaredMemberScope(classId) }
|
|
||||||
|
|
||||||
override fun getClassLikeSymbolByFqName(classId: ClassId): FirClassLikeSymbol<*>? {
|
override fun getClassLikeSymbolByFqName(classId: ClassId): FirClassLikeSymbol<*>? {
|
||||||
return classCache.lookupCacheOrCalculate(classId) {
|
return classCache.lookupCacheOrCalculate(classId) {
|
||||||
for (provider in dependencyProviders) {
|
for (provider in dependencyProviders) {
|
||||||
|
|||||||
-4
@@ -21,7 +21,6 @@ import org.jetbrains.kotlin.fir.resolve.FirSymbolProvider
|
|||||||
import org.jetbrains.kotlin.fir.resolve.ScopeSession
|
import org.jetbrains.kotlin.fir.resolve.ScopeSession
|
||||||
import org.jetbrains.kotlin.fir.resolve.getOrPut
|
import org.jetbrains.kotlin.fir.resolve.getOrPut
|
||||||
import org.jetbrains.kotlin.fir.scopes.FirScope
|
import org.jetbrains.kotlin.fir.scopes.FirScope
|
||||||
import org.jetbrains.kotlin.fir.scopes.impl.FirClassDeclaredMemberScope
|
|
||||||
import org.jetbrains.kotlin.fir.symbols.CallableId
|
import org.jetbrains.kotlin.fir.symbols.CallableId
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.*
|
import org.jetbrains.kotlin.fir.symbols.impl.*
|
||||||
import org.jetbrains.kotlin.fir.types.impl.ConeTypeParameterTypeImpl
|
import org.jetbrains.kotlin.fir.types.impl.ConeTypeParameterTypeImpl
|
||||||
@@ -265,9 +264,6 @@ class FirLibrarySymbolProviderImpl(val session: FirSession) : FirSymbolProvider(
|
|||||||
} ?: emptyList()
|
} ?: emptyList()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getClassDeclaredMemberScope(classId: ClassId): FirScope? =
|
|
||||||
findRegularClass(classId)?.let(::FirClassDeclaredMemberScope)
|
|
||||||
|
|
||||||
override fun getAllCallableNamesInPackage(fqName: FqName): Set<Name> {
|
override fun getAllCallableNamesInPackage(fqName: FqName): Set<Name> {
|
||||||
return allPackageFragments[fqName]?.flatMapTo(mutableSetOf()) {
|
return allPackageFragments[fqName]?.flatMapTo(mutableSetOf()) {
|
||||||
it.getAllCallableNames()
|
it.getAllCallableNames()
|
||||||
|
|||||||
@@ -12,7 +12,6 @@ import org.jetbrains.kotlin.fir.declarations.*
|
|||||||
import org.jetbrains.kotlin.fir.resolve.FirProvider
|
import org.jetbrains.kotlin.fir.resolve.FirProvider
|
||||||
import org.jetbrains.kotlin.fir.resolve.ScopeSession
|
import org.jetbrains.kotlin.fir.resolve.ScopeSession
|
||||||
import org.jetbrains.kotlin.fir.scopes.FirScope
|
import org.jetbrains.kotlin.fir.scopes.FirScope
|
||||||
import org.jetbrains.kotlin.fir.scopes.impl.FirClassDeclaredMemberScope
|
|
||||||
import org.jetbrains.kotlin.fir.symbols.CallableId
|
import org.jetbrains.kotlin.fir.symbols.CallableId
|
||||||
import org.jetbrains.kotlin.fir.symbols.ConeClassLikeLookupTag
|
import org.jetbrains.kotlin.fir.symbols.ConeClassLikeLookupTag
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.*
|
import org.jetbrains.kotlin.fir.symbols.impl.*
|
||||||
@@ -39,9 +38,6 @@ class FirProviderImpl(val session: FirSession) : FirProvider() {
|
|||||||
return (state.callableMap[CallableId(packageFqName, null, name)] ?: emptyList())
|
return (state.callableMap[CallableId(packageFqName, null, name)] ?: emptyList())
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getClassDeclaredMemberScope(classId: ClassId) =
|
|
||||||
(getFirClassifierByFqName(classId) as? FirRegularClass)?.let(::FirClassDeclaredMemberScope)
|
|
||||||
|
|
||||||
override fun getFirClassifierContainerFile(fqName: ClassId): FirFile {
|
override fun getFirClassifierContainerFile(fqName: ClassId): FirFile {
|
||||||
return state.classifierContainerFileMap[fqName] ?: error("Couldn't find container for $fqName")
|
return state.classifierContainerFileMap[fqName] ?: error("Couldn't find container for $fqName")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ import org.jetbrains.kotlin.fir.references.*
|
|||||||
import org.jetbrains.kotlin.fir.render
|
import org.jetbrains.kotlin.fir.render
|
||||||
import org.jetbrains.kotlin.fir.resolve.FirProvider
|
import org.jetbrains.kotlin.fir.resolve.FirProvider
|
||||||
import org.jetbrains.kotlin.fir.resolve.ResolutionMode
|
import org.jetbrains.kotlin.fir.resolve.ResolutionMode
|
||||||
|
import org.jetbrains.kotlin.fir.resolve.getClassDeclaredCallableSymbols
|
||||||
import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDesignatedBodyResolveTransformer
|
import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDesignatedBodyResolveTransformer
|
||||||
import org.jetbrains.kotlin.fir.resolve.transformers.runResolve
|
import org.jetbrains.kotlin.fir.resolve.transformers.runResolve
|
||||||
import org.jetbrains.kotlin.fir.scopes.ProcessorAction
|
import org.jetbrains.kotlin.fir.scopes.ProcessorAction
|
||||||
@@ -43,10 +44,14 @@ private fun FirFile.findCallableMember(
|
|||||||
provider: FirProvider, callableMember: KtCallableDeclaration,
|
provider: FirProvider, callableMember: KtCallableDeclaration,
|
||||||
packageFqName: FqName, klassFqName: FqName?, declName: Name
|
packageFqName: FqName, klassFqName: FqName?, declName: Name
|
||||||
): FirCallableDeclaration<*> {
|
): FirCallableDeclaration<*> {
|
||||||
|
if (klassFqName != null) {
|
||||||
|
return provider.getClassDeclaredCallableSymbols(ClassId(packageFqName, klassFqName, false), declName)
|
||||||
|
.find { symbol: FirCallableSymbol<*> ->
|
||||||
|
symbol.fir.psi == callableMember
|
||||||
|
}?.fir ?: error("Cannot find FIR callable declaration ${CallableId(packageFqName, klassFqName, declName)}")
|
||||||
|
}
|
||||||
// NB: not sure it's correct to use member scope provider from here (because of possible changes)
|
// NB: not sure it's correct to use member scope provider from here (because of possible changes)
|
||||||
val memberScope =
|
val memberScope = FirSelfImportingScope(this.packageFqName, session)
|
||||||
if (klassFqName == null) FirSelfImportingScope(this.packageFqName, session)
|
|
||||||
else provider.getClassDeclaredMemberScope(ClassId(packageFqName, klassFqName, false))!!
|
|
||||||
var result: FirCallableDeclaration<*>? = null
|
var result: FirCallableDeclaration<*>? = null
|
||||||
val processor = { symbol: FirCallableSymbol<*> ->
|
val processor = { symbol: FirCallableSymbol<*> ->
|
||||||
val fir = symbol.fir
|
val fir = symbol.fir
|
||||||
|
|||||||
@@ -141,11 +141,6 @@ class IdeFirProvider(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getClassDeclaredMemberScope(classId: ClassId): FirScope? {
|
|
||||||
getFirClassifierByFqName(classId)
|
|
||||||
return cacheProvider.getClassDeclaredMemberScope(classId)
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun getClassUseSiteMemberScope(classId: ClassId, useSiteSession: FirSession, scopeSession: ScopeSession): FirScope? {
|
override fun getClassUseSiteMemberScope(classId: ClassId, useSiteSession: FirSession, scopeSession: ScopeSession): FirScope? {
|
||||||
getFirClassifierByFqName(classId)
|
getFirClassifierByFqName(classId)
|
||||||
return cacheProvider.getClassUseSiteMemberScope(classId, useSiteSession, scopeSession)
|
return cacheProvider.getClassUseSiteMemberScope(classId, useSiteSession, scopeSession)
|
||||||
|
|||||||
Reference in New Issue
Block a user