diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/FirJavaModuleBasedSession.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/FirJavaModuleBasedSession.kt index 38c304166a4..c2fe5fa19bc 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/FirJavaModuleBasedSession.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/FirJavaModuleBasedSession.kt @@ -61,11 +61,6 @@ class FirJavaModuleBasedSession( ) as FirSymbolProvider ) - registerComponent( - FirCorrespondingSupertypesCache::class, - FirCorrespondingSupertypesCache(this) - ) - registerComponent( ConeCallConflictResolverFactory::class, JvmCallConflictResolverFactory @@ -114,28 +109,7 @@ class FirLibrarySession private constructor( javaSymbolProvider, 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 diff --git a/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/LightTree2Fir.kt b/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/LightTree2Fir.kt index 102fcc2e471..6652880f9a7 100644 --- a/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/LightTree2Fir.kt +++ b/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/LightTree2Fir.kt @@ -11,18 +11,17 @@ import com.intellij.openapi.util.io.FileUtil import com.intellij.openapi.vfs.CharsetToolkit import com.intellij.util.diff.FlyweightCapableTreeStructure import org.jetbrains.kotlin.fir.FirSession -import org.jetbrains.kotlin.fir.FirSessionBase import org.jetbrains.kotlin.fir.declarations.FirFile import org.jetbrains.kotlin.fir.lightTree.converter.DeclarationsConverter import org.jetbrains.kotlin.fir.scopes.FirScopeProvider import org.jetbrains.kotlin.lexer.KotlinLexer -import org.jetbrains.kotlin.parsing.KotlinParserDefinition import org.jetbrains.kotlin.parsing.KotlinLightParser +import org.jetbrains.kotlin.parsing.KotlinParserDefinition import java.io.File import java.nio.file.Path class LightTree2Fir( - val session: FirSession = object : FirSessionBase(null) {}, + val session: FirSession = object : FirSession(null) {}, private val scopeProvider: FirScopeProvider, private val stubMode: Boolean = false ) { diff --git a/compiler/fir/raw-fir/light-tree2fir/tests/org/jetbrains/kotlin/fir/lightTree/SimpleTestCase.kt b/compiler/fir/raw-fir/light-tree2fir/tests/org/jetbrains/kotlin/fir/lightTree/SimpleTestCase.kt index 9670c7289da..f0a41a92750 100644 --- a/compiler/fir/raw-fir/light-tree2fir/tests/org/jetbrains/kotlin/fir/lightTree/SimpleTestCase.kt +++ b/compiler/fir/raw-fir/light-tree2fir/tests/org/jetbrains/kotlin/fir/lightTree/SimpleTestCase.kt @@ -12,12 +12,13 @@ import com.intellij.psi.impl.PsiManagerEx import com.intellij.testFramework.LightVirtualFile import com.intellij.testFramework.TestDataPath 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.StubFirScopeProvider import org.jetbrains.kotlin.fir.lightTree.converter.DeclarationsConverter 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.test.JUnit3RunnerWithInners import org.junit.runner.RunWith @@ -62,7 +63,7 @@ class SimpleTestCase : AbstractRawFirBuilderTestCase() { println(DebugUtil.nodeTreeToString(builder.treeBuilt, false)) val firFromLightTreeFile = DeclarationsConverter( - object : FirSessionBase(null) {}, + object : FirSession(null) {}, StubFirScopeProvider, true, builder.lightTree diff --git a/compiler/fir/raw-fir/psi2fir/tests/org/jetbrains/kotlin/fir/builder/AbstractRawFirBuilderTestCase.kt b/compiler/fir/raw-fir/psi2fir/tests/org/jetbrains/kotlin/fir/builder/AbstractRawFirBuilderTestCase.kt index cf332694097..63b4ab833c9 100644 --- a/compiler/fir/raw-fir/psi2fir/tests/org/jetbrains/kotlin/fir/builder/AbstractRawFirBuilderTestCase.kt +++ b/compiler/fir/raw-fir/psi2fir/tests/org/jetbrains/kotlin/fir/builder/AbstractRawFirBuilderTestCase.kt @@ -16,7 +16,7 @@ import com.intellij.util.PathUtil import org.jetbrains.kotlin.KtNodeTypes import org.jetbrains.kotlin.fir.FirElement 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.declarations.FirFile import org.jetbrains.kotlin.fir.declarations.FirTypeParameter @@ -76,7 +76,7 @@ abstract class AbstractRawFirBuilderTestCase : KtParsingTestCase( } 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 = hashSetOf()): MutableSet { if (!result.add(this)) { diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/FirModuleBasedSession.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/FirModuleBasedSession.kt index 76d4dcbb18b..9a0434c95f8 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/FirModuleBasedSession.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/FirModuleBasedSession.kt @@ -20,10 +20,6 @@ abstract class FirModuleBasedSession(override val moduleInfo: ModuleInfo, sessio init { registerComponent(FirQualifierResolver::class, FirQualifierResolverImpl(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)) } } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/FirSessionBase.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/FirSessionBase.kt new file mode 100644 index 00000000000..982a386c3c0 --- /dev/null +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/FirSessionBase.kt @@ -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)) + } +} \ No newline at end of file diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirSessionBase.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirSessionBase.kt deleted file mode 100644 index 5f190c978a0..00000000000 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirSessionBase.kt +++ /dev/null @@ -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) { -} - diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/fir/FirIdeJavaModuleBasedSession.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/fir/FirIdeJavaModuleBasedSession.kt index bdaa960570c..e06b2ffd3c3 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/fir/FirIdeJavaModuleBasedSession.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/fir/FirIdeJavaModuleBasedSession.kt @@ -34,15 +34,8 @@ class FirIdeJavaModuleBasedSession( init { val firIdeProvider = FirIdeProvider(project, scope, this, KotlinScopeProvider(::wrapScopeWithJvmMapped)) - registerComponent( - FirProvider::class, - firIdeProvider - ) - - registerComponent( - FirIdeProvider::class, - firIdeProvider - ) + registerComponent(FirProvider::class, firIdeProvider) + registerComponent(FirIdeProvider::class, firIdeProvider) registerComponent( FirSymbolProvider::class, @@ -55,11 +48,6 @@ class FirIdeJavaModuleBasedSession( ) as FirSymbolProvider ) - registerComponent( - FirCorrespondingSupertypesCache::class, - FirCorrespondingSupertypesCache(this) - ) - registerComponent( ConeCallConflictResolverFactory::class, JvmCallConflictResolverFactory