diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaSymbolProvider.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaSymbolProvider.kt index e4daa0e5320..2146d6dfb18 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaSymbolProvider.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaSymbolProvider.kt @@ -64,12 +64,6 @@ class JavaSymbolProvider( override fun getTopLevelCallableSymbols(packageFqName: FqName, name: Name): List> = 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( classId: ClassId, useSiteSession: FirSession, diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/deserialization/KotlinDeserializedJvmSymbolsProvider.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/deserialization/KotlinDeserializedJvmSymbolsProvider.kt index d7126e474b1..6470d316fda 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/deserialization/KotlinDeserializedJvmSymbolsProvider.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/deserialization/KotlinDeserializedJvmSymbolsProvider.kt @@ -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.resolve.* 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.types.FirResolvedTypeRef 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 { return packagePartsCache.getOrPut(packageFqName) { try { diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/FirSymbolProvider.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/FirSymbolProvider.kt index b1b33fa43a7..8884ea30e88 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/FirSymbolProvider.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/FirSymbolProvider.kt @@ -53,7 +53,6 @@ abstract class FirSymbolProvider : FirSessionComponent { abstract fun getTopLevelCallableSymbols(packageFqName: FqName, name: Name): List> - abstract fun getClassDeclaredMemberScope(classId: ClassId): FirScope? abstract fun getClassUseSiteMemberScope( classId: ClassId, useSiteSession: FirSession, diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/impl/FirCompositeSymbolProvider.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/impl/FirCompositeSymbolProvider.kt index 535ee5b48d3..2f7e39d4336 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/impl/FirCompositeSymbolProvider.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/impl/FirCompositeSymbolProvider.kt @@ -29,8 +29,6 @@ class FirCompositeSymbolProvider(val providers: List) : FirSy return providers.flatMap { it.getTopLevelCallableSymbols(packageFqName, name) } } - override fun getClassDeclaredMemberScope(classId: ClassId) = providers.firstNotNullResult { it.getClassDeclaredMemberScope(classId) } - override fun getPackage(fqName: FqName): FqName? { return providers.firstNotNullResult { it.getPackage(fqName) } } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/impl/FirDependenciesSymbolProviderImpl.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/impl/FirDependenciesSymbolProviderImpl.kt index 42908da63bf..2511aeb3d0d 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/impl/FirDependenciesSymbolProviderImpl.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/impl/FirDependenciesSymbolProviderImpl.kt @@ -33,9 +33,6 @@ class FirDependenciesSymbolProviderImpl(val session: FirSession) : AbstractFirSy } ?: emptyList() } - override fun getClassDeclaredMemberScope(classId: ClassId) = - dependencyProviders.firstNotNullResult { it.getClassDeclaredMemberScope(classId) } - override fun getClassLikeSymbolByFqName(classId: ClassId): FirClassLikeSymbol<*>? { return classCache.lookupCacheOrCalculate(classId) { for (provider in dependencyProviders) { diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/impl/FirLibrarySymbolProviderImpl.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/impl/FirLibrarySymbolProviderImpl.kt index d8a9713b3f9..0a3b636fc6e 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/impl/FirLibrarySymbolProviderImpl.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/impl/FirLibrarySymbolProviderImpl.kt @@ -21,7 +21,6 @@ import org.jetbrains.kotlin.fir.resolve.FirSymbolProvider import org.jetbrains.kotlin.fir.resolve.ScopeSession import org.jetbrains.kotlin.fir.resolve.getOrPut 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.impl.* import org.jetbrains.kotlin.fir.types.impl.ConeTypeParameterTypeImpl @@ -265,9 +264,6 @@ class FirLibrarySymbolProviderImpl(val session: FirSession) : FirSymbolProvider( } ?: emptyList() } - override fun getClassDeclaredMemberScope(classId: ClassId): FirScope? = - findRegularClass(classId)?.let(::FirClassDeclaredMemberScope) - override fun getAllCallableNamesInPackage(fqName: FqName): Set { return allPackageFragments[fqName]?.flatMapTo(mutableSetOf()) { it.getAllCallableNames() diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/impl/FirProviderImpl.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/impl/FirProviderImpl.kt index 5b8643339a5..d271dd011b0 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/impl/FirProviderImpl.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/impl/FirProviderImpl.kt @@ -12,7 +12,6 @@ import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.resolve.FirProvider import org.jetbrains.kotlin.fir.resolve.ScopeSession 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.ConeClassLikeLookupTag 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()) } - override fun getClassDeclaredMemberScope(classId: ClassId) = - (getFirClassifierByFqName(classId) as? FirRegularClass)?.let(::FirClassDeclaredMemberScope) - override fun getFirClassifierContainerFile(fqName: ClassId): FirFile { return state.classifierContainerFileMap[fqName] ?: error("Couldn't find container for $fqName") } diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/fir/FirResolutionApi.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/fir/FirResolutionApi.kt index 8ec0835d823..d1fcd5fa89c 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/fir/FirResolutionApi.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/fir/FirResolutionApi.kt @@ -14,6 +14,7 @@ import org.jetbrains.kotlin.fir.references.* import org.jetbrains.kotlin.fir.render import org.jetbrains.kotlin.fir.resolve.FirProvider 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.runResolve import org.jetbrains.kotlin.fir.scopes.ProcessorAction @@ -43,10 +44,14 @@ private fun FirFile.findCallableMember( provider: FirProvider, callableMember: KtCallableDeclaration, packageFqName: FqName, klassFqName: FqName?, declName: Name ): 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) - val memberScope = - if (klassFqName == null) FirSelfImportingScope(this.packageFqName, session) - else provider.getClassDeclaredMemberScope(ClassId(packageFqName, klassFqName, false))!! + val memberScope = FirSelfImportingScope(this.packageFqName, session) var result: FirCallableDeclaration<*>? = null val processor = { symbol: FirCallableSymbol<*> -> val fir = symbol.fir diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/fir/IdeFirProvider.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/fir/IdeFirProvider.kt index a13291805a5..db27fa1c05d 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/fir/IdeFirProvider.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/fir/IdeFirProvider.kt @@ -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? { getFirClassifierByFqName(classId) return cacheProvider.getClassUseSiteMemberScope(classId, useSiteSession, scopeSession)