[FIR] Rename KotlinScopeProvider to FirKotlinScopeProvider

This commit is contained in:
Dmitriy Novozhilov
2021-04-28 12:40:50 +03:00
committed by TeamCityServer
parent 4ad7a4a2d1
commit e8c4b0e947
10 changed files with 24 additions and 35 deletions
@@ -31,7 +31,7 @@ import org.jetbrains.kotlin.fir.resolve.providers.FirProvider
import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProvider import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProvider
import org.jetbrains.kotlin.fir.resolve.providers.impl.* import org.jetbrains.kotlin.fir.resolve.providers.impl.*
import org.jetbrains.kotlin.fir.resolve.scopes.wrapScopeWithJvmMapped import org.jetbrains.kotlin.fir.resolve.scopes.wrapScopeWithJvmMapped
import org.jetbrains.kotlin.fir.scopes.KotlinScopeProvider import org.jetbrains.kotlin.fir.scopes.FirKotlinScopeProvider
import org.jetbrains.kotlin.incremental.components.LookupTracker import org.jetbrains.kotlin.incremental.components.LookupTracker
import org.jetbrains.kotlin.load.java.JavaClassFinderImpl import org.jetbrains.kotlin.load.java.JavaClassFinderImpl
import org.jetbrains.kotlin.load.kotlin.PackagePartProvider import org.jetbrains.kotlin.load.kotlin.PackagePartProvider
@@ -83,7 +83,7 @@ object FirSessionFactory {
registerResolveComponents(lookupTracker) registerResolveComponents(lookupTracker)
registerJavaSpecificResolveComponents() registerJavaSpecificResolveComponents()
val kotlinScopeProvider = KotlinScopeProvider(::wrapScopeWithJvmMapped) val kotlinScopeProvider = FirKotlinScopeProvider(::wrapScopeWithJvmMapped)
val firProvider = FirProviderImpl(this, kotlinScopeProvider) val firProvider = FirProviderImpl(this, kotlinScopeProvider)
register(FirProvider::class, firProvider) register(FirProvider::class, firProvider)
@@ -135,7 +135,7 @@ object FirSessionFactory {
val javaSymbolProvider = JavaSymbolProvider(this, project, scope) val javaSymbolProvider = JavaSymbolProvider(this, project, scope)
val kotlinScopeProvider = KotlinScopeProvider(::wrapScopeWithJvmMapped) val kotlinScopeProvider = FirKotlinScopeProvider(::wrapScopeWithJvmMapped)
val deserializedJvmSymbolsProvider = makeDeserializedJvmSymbolsProvider( val deserializedJvmSymbolsProvider = makeDeserializedJvmSymbolsProvider(
project, scope, packagePartProvider, javaSymbolProvider, kotlinScopeProvider project, scope, packagePartProvider, javaSymbolProvider, kotlinScopeProvider
@@ -161,7 +161,7 @@ object FirSessionFactory {
scope: GlobalSearchScope, scope: GlobalSearchScope,
packagePartProvider: PackagePartProvider, packagePartProvider: PackagePartProvider,
javaSymbolProvider: JavaSymbolProvider, javaSymbolProvider: JavaSymbolProvider,
kotlinScopeProvider: KotlinScopeProvider kotlinScopeProvider: FirKotlinScopeProvider
): KotlinDeserializedJvmSymbolsProvider { ): KotlinDeserializedJvmSymbolsProvider {
val kotlinClassFinder = VirtualFileFinderFactory.getInstance(project).create(scope) val kotlinClassFinder = VirtualFileFinderFactory.getInstance(project).create(scope)
@@ -12,7 +12,7 @@ import org.jetbrains.kotlin.fir.caches.firCachesFactory
import org.jetbrains.kotlin.fir.caches.getValue import org.jetbrains.kotlin.fir.caches.getValue
import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProvider import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProvider
import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProviderInternals import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProviderInternals
import org.jetbrains.kotlin.fir.scopes.KotlinScopeProvider import org.jetbrains.kotlin.fir.scopes.FirKotlinScopeProvider
import org.jetbrains.kotlin.fir.symbols.impl.* import org.jetbrains.kotlin.fir.symbols.impl.*
import org.jetbrains.kotlin.load.kotlin.KotlinClassFinder import org.jetbrains.kotlin.load.kotlin.KotlinClassFinder
import org.jetbrains.kotlin.load.kotlin.PackagePartProvider import org.jetbrains.kotlin.load.kotlin.PackagePartProvider
@@ -31,7 +31,7 @@ abstract class AbstractFirDeserializedSymbolsProvider(
session: FirSession, session: FirSession,
val packagePartProvider: PackagePartProvider, val packagePartProvider: PackagePartProvider,
val kotlinClassFinder: KotlinClassFinder, val kotlinClassFinder: KotlinClassFinder,
val kotlinScopeProvider: KotlinScopeProvider, val kotlinScopeProvider: FirKotlinScopeProvider,
) : FirSymbolProvider(session) { ) : FirSymbolProvider(session) {
// ------------------------ Caches ------------------------ // ------------------------ Caches ------------------------
@@ -22,7 +22,7 @@ import org.jetbrains.kotlin.fir.deserialization.deserializeClassToSymbol
import org.jetbrains.kotlin.fir.resolve.defaultType import org.jetbrains.kotlin.fir.resolve.defaultType
import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProvider import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProvider
import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProviderInternals import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProviderInternals
import org.jetbrains.kotlin.fir.scopes.KotlinScopeProvider import org.jetbrains.kotlin.fir.scopes.FirKotlinScopeProvider
import org.jetbrains.kotlin.name.StandardClassIds import org.jetbrains.kotlin.name.StandardClassIds
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
@@ -46,7 +46,7 @@ import java.io.InputStream
//TODO make thread safe //TODO make thread safe
@ThreadSafeMutableState @ThreadSafeMutableState
open class FirBuiltinSymbolProvider(session: FirSession, val kotlinScopeProvider: KotlinScopeProvider) : FirSymbolProvider(session) { open class FirBuiltinSymbolProvider(session: FirSession, val kotlinScopeProvider: FirKotlinScopeProvider) : FirSymbolProvider(session) {
private data class SyntheticFunctionalInterfaceSymbolKey(val kind: FunctionClassKind, val arity: Int) private data class SyntheticFunctionalInterfaceSymbolKey(val kind: FunctionClassKind, val arity: Int)
@@ -256,7 +256,7 @@ open class FirBuiltinSymbolProvider(session: FirSession, val kotlinScopeProvider
private class BuiltInsPackageFragment( private class BuiltInsPackageFragment(
stream: InputStream, val fqName: FqName, val session: FirSession, stream: InputStream, val fqName: FqName, val session: FirSession,
val kotlinScopeProvider: KotlinScopeProvider, val kotlinScopeProvider: FirKotlinScopeProvider,
) { ) {
lateinit var version: BuiltInsBinaryVersion lateinit var version: BuiltInsBinaryVersion
@@ -19,7 +19,7 @@ import org.jetbrains.kotlin.fir.expressions.builder.*
import org.jetbrains.kotlin.fir.java.JavaSymbolProvider import org.jetbrains.kotlin.fir.java.JavaSymbolProvider
import org.jetbrains.kotlin.fir.java.topLevelName import org.jetbrains.kotlin.fir.java.topLevelName
import org.jetbrains.kotlin.fir.resolve.providers.* import org.jetbrains.kotlin.fir.resolve.providers.*
import org.jetbrains.kotlin.fir.scopes.KotlinScopeProvider import org.jetbrains.kotlin.fir.scopes.FirKotlinScopeProvider
import org.jetbrains.kotlin.fir.symbols.impl.* import org.jetbrains.kotlin.fir.symbols.impl.*
import org.jetbrains.kotlin.load.java.JavaClassFinder import org.jetbrains.kotlin.load.java.JavaClassFinder
import org.jetbrains.kotlin.load.kotlin.* import org.jetbrains.kotlin.load.kotlin.*
@@ -38,7 +38,7 @@ class KotlinDeserializedJvmSymbolsProvider(
session: FirSession, session: FirSession,
packagePartProvider: PackagePartProvider, packagePartProvider: PackagePartProvider,
kotlinClassFinder: KotlinClassFinder, kotlinClassFinder: KotlinClassFinder,
kotlinScopeProvider: KotlinScopeProvider, kotlinScopeProvider: FirKotlinScopeProvider,
private val javaSymbolProvider: JavaSymbolProvider, private val javaSymbolProvider: JavaSymbolProvider,
javaClassFinder: JavaClassFinder, javaClassFinder: JavaClassFinder,
) : AbstractFirDeserializedSymbolsProvider(session, packagePartProvider, kotlinClassFinder, kotlinScopeProvider) { ) : AbstractFirDeserializedSymbolsProvider(session, packagePartProvider, kotlinClassFinder, kotlinScopeProvider) {
@@ -13,7 +13,7 @@ import org.jetbrains.kotlin.fir.resolve.providers.FirProvider
import org.jetbrains.kotlin.fir.resolve.providers.FirProviderInternals import org.jetbrains.kotlin.fir.resolve.providers.FirProviderInternals
import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProvider import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProvider
import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProviderInternals import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProviderInternals
import org.jetbrains.kotlin.fir.scopes.KotlinScopeProvider import org.jetbrains.kotlin.fir.scopes.FirKotlinScopeProvider
import org.jetbrains.kotlin.name.CallableId import org.jetbrains.kotlin.name.CallableId
import org.jetbrains.kotlin.fir.symbols.impl.* import org.jetbrains.kotlin.fir.symbols.impl.*
import org.jetbrains.kotlin.fir.visitors.FirDefaultVisitor import org.jetbrains.kotlin.fir.visitors.FirDefaultVisitor
@@ -22,7 +22,7 @@ import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.name.Name
@ThreadSafeMutableState @ThreadSafeMutableState
class FirProviderImpl(val session: FirSession, val kotlinScopeProvider: KotlinScopeProvider) : FirProvider() { class FirProviderImpl(val session: FirSession, val kotlinScopeProvider: FirKotlinScopeProvider) : FirProvider() {
override val symbolProvider: FirSymbolProvider = SymbolProvider() override val symbolProvider: FirSymbolProvider = SymbolProvider()
override fun getFirCallableContainerFile(symbol: FirCallableSymbol<*>): FirFile? { override fun getFirCallableContainerFile(symbol: FirCallableSymbol<*>): FirFile? {
@@ -18,7 +18,7 @@ import org.jetbrains.kotlin.fir.symbols.impl.FirRegularClassSymbol
import org.jetbrains.kotlin.fir.typeContext import org.jetbrains.kotlin.fir.typeContext
import org.jetbrains.kotlin.fir.types.* import org.jetbrains.kotlin.fir.types.*
class KotlinScopeProvider( class FirKotlinScopeProvider(
val declaredMemberScopeDecorator: ( val declaredMemberScopeDecorator: (
klass: FirClass<*>, klass: FirClass<*>,
declaredMemberScope: FirScope, declaredMemberScope: FirScope,
@@ -9,7 +9,7 @@ import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.caches.* import org.jetbrains.kotlin.fir.caches.*
import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProviderInternals import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProviderInternals
import org.jetbrains.kotlin.fir.resolve.providers.impl.FirBuiltinSymbolProvider import org.jetbrains.kotlin.fir.resolve.providers.impl.FirBuiltinSymbolProvider
import org.jetbrains.kotlin.fir.scopes.KotlinScopeProvider import org.jetbrains.kotlin.fir.scopes.FirKotlinScopeProvider
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirNamedFunctionSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirNamedFunctionSymbol
import org.jetbrains.kotlin.name.CallableId import org.jetbrains.kotlin.name.CallableId
@@ -18,7 +18,7 @@ import org.jetbrains.kotlin.name.Name
class FirIdeBuiltinSymbolProvider( class FirIdeBuiltinSymbolProvider(
session: FirSession, session: FirSession,
kotlinScopeProvider: KotlinScopeProvider kotlinScopeProvider: FirKotlinScopeProvider
) : FirBuiltinSymbolProvider(session, kotlinScopeProvider) { ) : FirBuiltinSymbolProvider(session, kotlinScopeProvider) {
@OptIn(ExperimentalStdlibApi::class) @OptIn(ExperimentalStdlibApi::class)
private val functionsCache = session.firCachesFactory.createCache { callableId: CallableId -> private val functionsCache = session.firCachesFactory.createCache { callableId: CallableId ->
@@ -37,4 +37,4 @@ class FirIdeBuiltinSymbolProvider(
override fun getTopLevelFunctionSymbolsTo(destination: MutableList<FirNamedFunctionSymbol>, packageFqName: FqName, name: Name) { override fun getTopLevelFunctionSymbolsTo(destination: MutableList<FirNamedFunctionSymbol>, packageFqName: FqName, name: Name) {
destination += functionsCache.getValue(CallableId(packageFqName, name)) destination += functionsCache.getValue(CallableId(packageFqName, name))
} }
} }
@@ -9,14 +9,7 @@ import org.jetbrains.kotlin.fir.declarations.*
import org.jetbrains.kotlin.fir.resolve.providers.FirProvider import org.jetbrains.kotlin.fir.resolve.providers.FirProvider
import org.jetbrains.kotlin.fir.resolve.providers.FirProviderInternals import org.jetbrains.kotlin.fir.resolve.providers.FirProviderInternals
import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProvider import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProvider
import org.jetbrains.kotlin.fir.resolve.providers.impl.FirBuiltinSymbolProvider
import org.jetbrains.kotlin.fir.resolve.providers.impl.FirCloneableSymbolProvider
import org.jetbrains.kotlin.fir.resolve.providers.impl.FirCompositeSymbolProvider
import org.jetbrains.kotlin.fir.resolve.scopes.wrapScopeWithJvmMapped
import org.jetbrains.kotlin.fir.scopes.KotlinScopeProvider
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
import org.jetbrains.kotlin.idea.fir.low.level.api.sessions.FirIdeBuiltinsAndCloneableSession
import org.jetbrains.kotlin.idea.fir.low.level.api.sessions.FirIdeLibrariesSession
import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.ClassId
import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.name.Name
@@ -42,4 +35,4 @@ internal class FirIdeLibrariesSessionProvider(
override fun getClassNamesInPackage(fqName: FqName): Set<Name> = shouldNotBeCalled() override fun getClassNamesInPackage(fqName: FqName): Set<Name> = shouldNotBeCalled()
private fun shouldNotBeCalled(): Nothing = error("Should not be called for FirIdeLibrariesSessionProvider") private fun shouldNotBeCalled(): Nothing = error("Should not be called for FirIdeLibrariesSessionProvider")
} }
@@ -8,33 +8,29 @@ package org.jetbrains.kotlin.idea.fir.low.level.api.providers
import com.intellij.openapi.project.Project import com.intellij.openapi.project.Project
import com.intellij.psi.search.GlobalSearchScope import com.intellij.psi.search.GlobalSearchScope
import org.jetbrains.kotlin.fir.* import org.jetbrains.kotlin.fir.*
import org.jetbrains.kotlin.fir.builder.RawFirFragmentForLazyBodiesBuilder
import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.declarations.*
import org.jetbrains.kotlin.fir.declarations.synthetic.FirSyntheticProperty import org.jetbrains.kotlin.fir.declarations.synthetic.FirSyntheticProperty
import org.jetbrains.kotlin.fir.resolve.providers.FirProvider import org.jetbrains.kotlin.fir.resolve.providers.FirProvider
import org.jetbrains.kotlin.fir.resolve.providers.FirProviderInternals import org.jetbrains.kotlin.fir.resolve.providers.FirProviderInternals
import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProvider import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProvider
import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProviderInternals import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProviderInternals
import org.jetbrains.kotlin.fir.scopes.KotlinScopeProvider import org.jetbrains.kotlin.fir.scopes.FirKotlinScopeProvider
import org.jetbrains.kotlin.fir.symbols.impl.* import org.jetbrains.kotlin.fir.symbols.impl.*
import org.jetbrains.kotlin.idea.caches.project.ModuleSourceInfo import org.jetbrains.kotlin.idea.caches.project.ModuleSourceInfo
import org.jetbrains.kotlin.idea.fir.low.level.api.IndexHelper import org.jetbrains.kotlin.idea.fir.low.level.api.IndexHelper
import org.jetbrains.kotlin.idea.fir.low.level.api.PackageExistenceCheckerForSingleModule import org.jetbrains.kotlin.idea.fir.low.level.api.PackageExistenceCheckerForSingleModule
import org.jetbrains.kotlin.idea.fir.low.level.api.api.collectDesignation
import org.jetbrains.kotlin.idea.fir.low.level.api.file.builder.FirFileBuilder import org.jetbrains.kotlin.idea.fir.low.level.api.file.builder.FirFileBuilder
import org.jetbrains.kotlin.idea.fir.low.level.api.file.builder.ModuleFileCache import org.jetbrains.kotlin.idea.fir.low.level.api.file.builder.ModuleFileCache
import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.ClassId
import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.psi.KtNamedFunction
import org.jetbrains.kotlin.psi.KtProperty
@ThreadSafeMutableState @ThreadSafeMutableState
internal class FirIdeProvider( internal class FirIdeProvider(
project: Project, project: Project,
val session: FirSession, val session: FirSession,
moduleInfo: ModuleSourceInfo, moduleInfo: ModuleSourceInfo,
val kotlinScopeProvider: KotlinScopeProvider, val kotlinScopeProvider: FirKotlinScopeProvider,
firFileBuilder: FirFileBuilder, firFileBuilder: FirFileBuilder,
val cache: ModuleFileCache, val cache: ModuleFileCache,
searchScope: GlobalSearchScope, searchScope: GlobalSearchScope,
@@ -26,7 +26,7 @@ import org.jetbrains.kotlin.fir.resolve.providers.impl.FirCompositeSymbolProvide
import org.jetbrains.kotlin.fir.resolve.scopes.wrapScopeWithJvmMapped import org.jetbrains.kotlin.fir.resolve.scopes.wrapScopeWithJvmMapped
import org.jetbrains.kotlin.fir.resolve.transformers.FirPhaseCheckingPhaseManager import org.jetbrains.kotlin.fir.resolve.transformers.FirPhaseCheckingPhaseManager
import org.jetbrains.kotlin.fir.resolve.transformers.FirPhaseManager import org.jetbrains.kotlin.fir.resolve.transformers.FirPhaseManager
import org.jetbrains.kotlin.fir.scopes.KotlinScopeProvider import org.jetbrains.kotlin.fir.scopes.FirKotlinScopeProvider
import org.jetbrains.kotlin.fir.session.* import org.jetbrains.kotlin.fir.session.*
import org.jetbrains.kotlin.idea.caches.project.* import org.jetbrains.kotlin.idea.caches.project.*
import org.jetbrains.kotlin.idea.caches.resolve.IDEPackagePartProvider import org.jetbrains.kotlin.idea.caches.resolve.IDEPackagePartProvider
@@ -66,7 +66,7 @@ internal object FirIdeSessionFactory {
): FirIdeSourcesSession { ): FirIdeSourcesSession {
sessionsCache[moduleInfo]?.let { return it } sessionsCache[moduleInfo]?.let { return it }
val languageVersionSettings = moduleInfo.module.languageVersionSettings val languageVersionSettings = moduleInfo.module.languageVersionSettings
val scopeProvider = KotlinScopeProvider(::wrapScopeWithJvmMapped) val scopeProvider = FirKotlinScopeProvider(::wrapScopeWithJvmMapped)
val firBuilder = FirFileBuilder(scopeProvider, firPhaseRunner) val firBuilder = FirFileBuilder(scopeProvider, firPhaseRunner)
val searchScope = ModuleProductionSourceScope(moduleInfo.module) val searchScope = ModuleProductionSourceScope(moduleInfo.module)
val dependentModules = moduleInfo.dependenciesWithoutSelf() val dependentModules = moduleInfo.dependenciesWithoutSelf()
@@ -177,7 +177,7 @@ internal object FirIdeSessionFactory {
val javaSymbolProvider = JavaSymbolProvider(this, project, searchScope) val javaSymbolProvider = JavaSymbolProvider(this, project, searchScope)
val kotlinScopeProvider = KotlinScopeProvider(::wrapScopeWithJvmMapped) val kotlinScopeProvider = FirKotlinScopeProvider(::wrapScopeWithJvmMapped)
val symbolProvider = FirCompositeSymbolProvider( val symbolProvider = FirCompositeSymbolProvider(
this, this,
@@ -217,7 +217,7 @@ internal object FirIdeSessionFactory {
register(FirPhaseManager::class, FirPhaseCheckingPhaseManager) register(FirPhaseManager::class, FirPhaseCheckingPhaseManager)
registerCommonComponents(languageVersionSettings) registerCommonComponents(languageVersionSettings)
val kotlinScopeProvider = KotlinScopeProvider(::wrapScopeWithJvmMapped) val kotlinScopeProvider = FirKotlinScopeProvider(::wrapScopeWithJvmMapped)
val symbolProvider = FirCompositeSymbolProvider( val symbolProvider = FirCompositeSymbolProvider(
this, this,
listOf( listOf(