[FIR] Move initialization of common services to FirSessionBase
This commit is contained in:
@@ -61,11 +61,6 @@ class FirJavaModuleBasedSession(
|
|||||||
) as FirSymbolProvider
|
) as FirSymbolProvider
|
||||||
)
|
)
|
||||||
|
|
||||||
registerComponent(
|
|
||||||
FirCorrespondingSupertypesCache::class,
|
|
||||||
FirCorrespondingSupertypesCache(this)
|
|
||||||
)
|
|
||||||
|
|
||||||
registerComponent(
|
registerComponent(
|
||||||
ConeCallConflictResolverFactory::class,
|
ConeCallConflictResolverFactory::class,
|
||||||
JvmCallConflictResolverFactory
|
JvmCallConflictResolverFactory
|
||||||
@@ -114,28 +109,7 @@ class FirLibrarySession private constructor(
|
|||||||
javaSymbolProvider,
|
javaSymbolProvider,
|
||||||
FirDependenciesSymbolProviderImpl(this)
|
FirDependenciesSymbolProviderImpl(this)
|
||||||
)
|
)
|
||||||
) as FirSymbolProvider
|
)
|
||||||
)
|
|
||||||
registerComponent(FirDeclaredMemberScopeProvider::class, FirDeclaredMemberScopeProvider())
|
|
||||||
|
|
||||||
registerComponent(
|
|
||||||
FirCorrespondingSupertypesCache::class,
|
|
||||||
FirCorrespondingSupertypesCache(this)
|
|
||||||
)
|
|
||||||
|
|
||||||
registerComponent(
|
|
||||||
FirExtensionService::class,
|
|
||||||
FirExtensionService(this)
|
|
||||||
)
|
|
||||||
|
|
||||||
registerComponent(
|
|
||||||
FirRegisteredPluginAnnotations::class,
|
|
||||||
FirRegisteredPluginAnnotations.create(this)
|
|
||||||
)
|
|
||||||
|
|
||||||
registerComponent(
|
|
||||||
FirPredicateBasedProvider::class,
|
|
||||||
FirPredicateBasedProvider.create(this)
|
|
||||||
)
|
)
|
||||||
|
|
||||||
sessionProvider.sessionCache[moduleInfo] = this
|
sessionProvider.sessionCache[moduleInfo] = this
|
||||||
|
|||||||
+2
-3
@@ -11,18 +11,17 @@ import com.intellij.openapi.util.io.FileUtil
|
|||||||
import com.intellij.openapi.vfs.CharsetToolkit
|
import com.intellij.openapi.vfs.CharsetToolkit
|
||||||
import com.intellij.util.diff.FlyweightCapableTreeStructure
|
import com.intellij.util.diff.FlyweightCapableTreeStructure
|
||||||
import org.jetbrains.kotlin.fir.FirSession
|
import org.jetbrains.kotlin.fir.FirSession
|
||||||
import org.jetbrains.kotlin.fir.FirSessionBase
|
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirFile
|
import org.jetbrains.kotlin.fir.declarations.FirFile
|
||||||
import org.jetbrains.kotlin.fir.lightTree.converter.DeclarationsConverter
|
import org.jetbrains.kotlin.fir.lightTree.converter.DeclarationsConverter
|
||||||
import org.jetbrains.kotlin.fir.scopes.FirScopeProvider
|
import org.jetbrains.kotlin.fir.scopes.FirScopeProvider
|
||||||
import org.jetbrains.kotlin.lexer.KotlinLexer
|
import org.jetbrains.kotlin.lexer.KotlinLexer
|
||||||
import org.jetbrains.kotlin.parsing.KotlinParserDefinition
|
|
||||||
import org.jetbrains.kotlin.parsing.KotlinLightParser
|
import org.jetbrains.kotlin.parsing.KotlinLightParser
|
||||||
|
import org.jetbrains.kotlin.parsing.KotlinParserDefinition
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.nio.file.Path
|
import java.nio.file.Path
|
||||||
|
|
||||||
class LightTree2Fir(
|
class LightTree2Fir(
|
||||||
val session: FirSession = object : FirSessionBase(null) {},
|
val session: FirSession = object : FirSession(null) {},
|
||||||
private val scopeProvider: FirScopeProvider,
|
private val scopeProvider: FirScopeProvider,
|
||||||
private val stubMode: Boolean = false
|
private val stubMode: Boolean = false
|
||||||
) {
|
) {
|
||||||
|
|||||||
+4
-3
@@ -12,12 +12,13 @@ import com.intellij.psi.impl.PsiManagerEx
|
|||||||
import com.intellij.testFramework.LightVirtualFile
|
import com.intellij.testFramework.LightVirtualFile
|
||||||
import com.intellij.testFramework.TestDataPath
|
import com.intellij.testFramework.TestDataPath
|
||||||
import org.jetbrains.kotlin.fir.FirRenderer
|
import org.jetbrains.kotlin.fir.FirRenderer
|
||||||
import org.jetbrains.kotlin.fir.FirSessionBase
|
import org.jetbrains.kotlin.fir.FirSession
|
||||||
import org.jetbrains.kotlin.fir.builder.AbstractRawFirBuilderTestCase
|
import org.jetbrains.kotlin.fir.builder.AbstractRawFirBuilderTestCase
|
||||||
import org.jetbrains.kotlin.fir.builder.StubFirScopeProvider
|
import org.jetbrains.kotlin.fir.builder.StubFirScopeProvider
|
||||||
import org.jetbrains.kotlin.fir.lightTree.converter.DeclarationsConverter
|
import org.jetbrains.kotlin.fir.lightTree.converter.DeclarationsConverter
|
||||||
import org.jetbrains.kotlin.idea.KotlinFileType
|
import org.jetbrains.kotlin.idea.KotlinFileType
|
||||||
import org.jetbrains.kotlin.parsing.*
|
import org.jetbrains.kotlin.parsing.KotlinParser
|
||||||
|
import org.jetbrains.kotlin.parsing.KotlinParserDefinition
|
||||||
import org.jetbrains.kotlin.psi.KtFile
|
import org.jetbrains.kotlin.psi.KtFile
|
||||||
import org.jetbrains.kotlin.test.JUnit3RunnerWithInners
|
import org.jetbrains.kotlin.test.JUnit3RunnerWithInners
|
||||||
import org.junit.runner.RunWith
|
import org.junit.runner.RunWith
|
||||||
@@ -62,7 +63,7 @@ class SimpleTestCase : AbstractRawFirBuilderTestCase() {
|
|||||||
println(DebugUtil.nodeTreeToString(builder.treeBuilt, false))
|
println(DebugUtil.nodeTreeToString(builder.treeBuilt, false))
|
||||||
|
|
||||||
val firFromLightTreeFile = DeclarationsConverter(
|
val firFromLightTreeFile = DeclarationsConverter(
|
||||||
object : FirSessionBase(null) {},
|
object : FirSession(null) {},
|
||||||
StubFirScopeProvider,
|
StubFirScopeProvider,
|
||||||
true,
|
true,
|
||||||
builder.lightTree
|
builder.lightTree
|
||||||
|
|||||||
+2
-2
@@ -16,7 +16,7 @@ import com.intellij.util.PathUtil
|
|||||||
import org.jetbrains.kotlin.KtNodeTypes
|
import org.jetbrains.kotlin.KtNodeTypes
|
||||||
import org.jetbrains.kotlin.fir.FirElement
|
import org.jetbrains.kotlin.fir.FirElement
|
||||||
import org.jetbrains.kotlin.fir.FirRenderer
|
import org.jetbrains.kotlin.fir.FirRenderer
|
||||||
import org.jetbrains.kotlin.fir.FirSessionBase
|
import org.jetbrains.kotlin.fir.FirSession
|
||||||
import org.jetbrains.kotlin.fir.contracts.impl.FirEmptyContractDescription
|
import org.jetbrains.kotlin.fir.contracts.impl.FirEmptyContractDescription
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirFile
|
import org.jetbrains.kotlin.fir.declarations.FirFile
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirTypeParameter
|
import org.jetbrains.kotlin.fir.declarations.FirTypeParameter
|
||||||
@@ -76,7 +76,7 @@ abstract class AbstractRawFirBuilderTestCase : KtParsingTestCase(
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected fun KtFile.toFirFile(stubMode: Boolean): FirFile =
|
protected fun KtFile.toFirFile(stubMode: Boolean): FirFile =
|
||||||
RawFirBuilder(object : FirSessionBase(null) {}, StubFirScopeProvider, stubMode).buildFirFile(this)
|
RawFirBuilder(object : FirSession(null) {}, StubFirScopeProvider, stubMode).buildFirFile(this)
|
||||||
|
|
||||||
private fun FirElement.traverseChildren(result: MutableSet<FirElement> = hashSetOf()): MutableSet<FirElement> {
|
private fun FirElement.traverseChildren(result: MutableSet<FirElement> = hashSetOf()): MutableSet<FirElement> {
|
||||||
if (!result.add(this)) {
|
if (!result.add(this)) {
|
||||||
|
|||||||
@@ -20,10 +20,6 @@ abstract class FirModuleBasedSession(override val moduleInfo: ModuleInfo, sessio
|
|||||||
init {
|
init {
|
||||||
registerComponent(FirQualifierResolver::class, FirQualifierResolverImpl(this))
|
registerComponent(FirQualifierResolver::class, FirQualifierResolverImpl(this))
|
||||||
registerComponent(FirTypeResolver::class, FirTypeResolverImpl(this))
|
registerComponent(FirTypeResolver::class, FirTypeResolverImpl(this))
|
||||||
registerComponent(FirDeclaredMemberScopeProvider::class, FirDeclaredMemberScopeProvider())
|
|
||||||
registerComponent(FirExtensionService::class, FirExtensionService(this))
|
|
||||||
registerComponent(FirRegisteredPluginAnnotations::class, FirRegisteredPluginAnnotations.create(this))
|
|
||||||
registerComponent(FirPredicateBasedProvider::class, FirPredicateBasedProvider.create(this))
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,23 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.fir
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.fir.extensions.FirExtensionService
|
||||||
|
import org.jetbrains.kotlin.fir.extensions.FirPredicateBasedProvider
|
||||||
|
import org.jetbrains.kotlin.fir.extensions.FirRegisteredPluginAnnotations
|
||||||
|
import org.jetbrains.kotlin.fir.scopes.impl.FirDeclaredMemberScopeProvider
|
||||||
|
import org.jetbrains.kotlin.fir.types.FirCorrespondingSupertypesCache
|
||||||
|
|
||||||
|
abstract class FirSessionBase(sessionProvider: FirSessionProvider?) : FirSession(sessionProvider) {
|
||||||
|
init {
|
||||||
|
registerComponent(FirDeclaredMemberScopeProvider::class, FirDeclaredMemberScopeProvider())
|
||||||
|
registerComponent(FirCorrespondingSupertypesCache::class, FirCorrespondingSupertypesCache(this))
|
||||||
|
|
||||||
|
registerComponent(FirExtensionService::class, FirExtensionService(this))
|
||||||
|
registerComponent(FirRegisteredPluginAnnotations::class, FirRegisteredPluginAnnotations.create(this))
|
||||||
|
registerComponent(FirPredicateBasedProvider::class, FirPredicateBasedProvider.create(this))
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
|
||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.jetbrains.kotlin.fir
|
|
||||||
|
|
||||||
|
|
||||||
abstract class FirSessionBase(sessionProvider: FirSessionProvider?) : FirSession(sessionProvider) {
|
|
||||||
}
|
|
||||||
|
|
||||||
+2
-14
@@ -34,15 +34,8 @@ class FirIdeJavaModuleBasedSession(
|
|||||||
init {
|
init {
|
||||||
val firIdeProvider = FirIdeProvider(project, scope, this, KotlinScopeProvider(::wrapScopeWithJvmMapped))
|
val firIdeProvider = FirIdeProvider(project, scope, this, KotlinScopeProvider(::wrapScopeWithJvmMapped))
|
||||||
|
|
||||||
registerComponent(
|
registerComponent(FirProvider::class, firIdeProvider)
|
||||||
FirProvider::class,
|
registerComponent(FirIdeProvider::class, firIdeProvider)
|
||||||
firIdeProvider
|
|
||||||
)
|
|
||||||
|
|
||||||
registerComponent(
|
|
||||||
FirIdeProvider::class,
|
|
||||||
firIdeProvider
|
|
||||||
)
|
|
||||||
|
|
||||||
registerComponent(
|
registerComponent(
|
||||||
FirSymbolProvider::class,
|
FirSymbolProvider::class,
|
||||||
@@ -55,11 +48,6 @@ class FirIdeJavaModuleBasedSession(
|
|||||||
) as FirSymbolProvider
|
) as FirSymbolProvider
|
||||||
)
|
)
|
||||||
|
|
||||||
registerComponent(
|
|
||||||
FirCorrespondingSupertypesCache::class,
|
|
||||||
FirCorrespondingSupertypesCache(this)
|
|
||||||
)
|
|
||||||
|
|
||||||
registerComponent(
|
registerComponent(
|
||||||
ConeCallConflictResolverFactory::class,
|
ConeCallConflictResolverFactory::class,
|
||||||
JvmCallConflictResolverFactory
|
JvmCallConflictResolverFactory
|
||||||
|
|||||||
Reference in New Issue
Block a user