[FIR] Extract FirSessionConfigurator and IncrementalCompilationContext to separated classes
With FirSessionFactory and FirJsSessionFactory
This commit is contained in:
+2
-2
@@ -31,7 +31,7 @@ import org.jetbrains.kotlin.fir.java.FirJavaFacadeForSource
|
|||||||
import org.jetbrains.kotlin.fir.java.JavaSymbolProvider
|
import org.jetbrains.kotlin.fir.java.JavaSymbolProvider
|
||||||
import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProvider
|
import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProvider
|
||||||
import org.jetbrains.kotlin.fir.resolve.providers.impl.FirCompositeSymbolProvider
|
import org.jetbrains.kotlin.fir.resolve.providers.impl.FirCompositeSymbolProvider
|
||||||
import org.jetbrains.kotlin.fir.session.FirSessionFactory
|
import org.jetbrains.kotlin.fir.session.FirSessionConfigurator
|
||||||
import org.jetbrains.kotlin.load.java.createJavaClassFinder
|
import org.jetbrains.kotlin.load.java.createJavaClassFinder
|
||||||
|
|
||||||
@SessionConfiguration
|
@SessionConfiguration
|
||||||
@@ -50,7 +50,7 @@ internal inline fun createCompositeSymbolProvider(
|
|||||||
@SessionConfiguration
|
@SessionConfiguration
|
||||||
internal fun FirSession.registerCompilerPluginExtensions(project: Project, module: KtSourceModule) {
|
internal fun FirSession.registerCompilerPluginExtensions(project: Project, module: KtSourceModule) {
|
||||||
val extensionProvider = project.getService(KtCompilerPluginsProvider::class.java) ?: return
|
val extensionProvider = project.getService(KtCompilerPluginsProvider::class.java) ?: return
|
||||||
FirSessionFactory.FirSessionConfigurator(this).apply {
|
FirSessionConfigurator(this).apply {
|
||||||
@Suppress("UNCHECKED_CAST")
|
@Suppress("UNCHECKED_CAST")
|
||||||
val registrars = extensionProvider.getRegisteredExtensions(
|
val registrars = extensionProvider.getRegisteredExtensions(
|
||||||
module,
|
module,
|
||||||
|
|||||||
+3
-2
@@ -48,6 +48,7 @@ import org.jetbrains.kotlin.fir.pipeline.runResolution
|
|||||||
import org.jetbrains.kotlin.fir.resolve.ScopeSession
|
import org.jetbrains.kotlin.fir.resolve.ScopeSession
|
||||||
import org.jetbrains.kotlin.fir.session.FirSessionFactory
|
import org.jetbrains.kotlin.fir.session.FirSessionFactory
|
||||||
import org.jetbrains.kotlin.fir.session.FirSessionFactory.createSessionWithDependencies
|
import org.jetbrains.kotlin.fir.session.FirSessionFactory.createSessionWithDependencies
|
||||||
|
import org.jetbrains.kotlin.fir.session.IncrementalCompilationContext
|
||||||
import org.jetbrains.kotlin.fir.session.environment.AbstractProjectEnvironment
|
import org.jetbrains.kotlin.fir.session.environment.AbstractProjectEnvironment
|
||||||
import org.jetbrains.kotlin.fir.session.environment.AbstractProjectFileSearchScope
|
import org.jetbrains.kotlin.fir.session.environment.AbstractProjectFileSearchScope
|
||||||
import org.jetbrains.kotlin.fir.types.arrayElementType
|
import org.jetbrains.kotlin.fir.types.arrayElementType
|
||||||
@@ -315,7 +316,7 @@ object FirKotlinToJvmBytecodeCompiler {
|
|||||||
|
|
||||||
private fun CompilationContext.createComponentsForIncrementalCompilation(
|
private fun CompilationContext.createComponentsForIncrementalCompilation(
|
||||||
sourceScope: AbstractProjectFileSearchScope
|
sourceScope: AbstractProjectFileSearchScope
|
||||||
): FirSessionFactory.IncrementalCompilationContext? {
|
): IncrementalCompilationContext? {
|
||||||
if (targetIds == null || incrementalComponents == null) return null
|
if (targetIds == null || incrementalComponents == null) return null
|
||||||
val directoryWithIncrementalPartsFromPreviousCompilation =
|
val directoryWithIncrementalPartsFromPreviousCompilation =
|
||||||
moduleConfiguration[JVMConfigurationKeys.OUTPUT_DIRECTORY]
|
moduleConfiguration[JVMConfigurationKeys.OUTPUT_DIRECTORY]
|
||||||
@@ -329,7 +330,7 @@ object FirKotlinToJvmBytecodeCompiler {
|
|||||||
projectEnvironment.getPackagePartProvider(sourceScope),
|
projectEnvironment.getPackagePartProvider(sourceScope),
|
||||||
targetIds.map(incrementalComponents::getIncrementalCache)
|
targetIds.map(incrementalComponents::getIncrementalCache)
|
||||||
)
|
)
|
||||||
return FirSessionFactory.IncrementalCompilationContext(emptyList(), packagePartProvider, incrementalCompilationScope)
|
return IncrementalCompilationContext(emptyList(), packagePartProvider, incrementalCompilationScope)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun CompilationContext.runBackend(
|
private fun CompilationContext.runBackend(
|
||||||
|
|||||||
@@ -59,6 +59,7 @@ import org.jetbrains.kotlin.fir.pipeline.runCheckers
|
|||||||
import org.jetbrains.kotlin.fir.pipeline.runResolution
|
import org.jetbrains.kotlin.fir.pipeline.runResolution
|
||||||
import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProvider
|
import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProvider
|
||||||
import org.jetbrains.kotlin.fir.session.FirSessionFactory
|
import org.jetbrains.kotlin.fir.session.FirSessionFactory
|
||||||
|
import org.jetbrains.kotlin.fir.session.IncrementalCompilationContext
|
||||||
import org.jetbrains.kotlin.fir.session.environment.AbstractProjectEnvironment
|
import org.jetbrains.kotlin.fir.session.environment.AbstractProjectEnvironment
|
||||||
import org.jetbrains.kotlin.fir.session.environment.AbstractProjectFileSearchScope
|
import org.jetbrains.kotlin.fir.session.environment.AbstractProjectFileSearchScope
|
||||||
import org.jetbrains.kotlin.ir.backend.jvm.serialization.JvmIrMangler
|
import org.jetbrains.kotlin.ir.backend.jvm.serialization.JvmIrMangler
|
||||||
@@ -427,7 +428,7 @@ private fun createContextForIncrementalCompilation(
|
|||||||
sourceScope: AbstractProjectFileSearchScope,
|
sourceScope: AbstractProjectFileSearchScope,
|
||||||
previousStepsSymbolProviders: List<FirSymbolProvider>,
|
previousStepsSymbolProviders: List<FirSymbolProvider>,
|
||||||
incrementalExcludesScope: AbstractProjectFileSearchScope?,
|
incrementalExcludesScope: AbstractProjectFileSearchScope?,
|
||||||
): FirSessionFactory.IncrementalCompilationContext? {
|
): IncrementalCompilationContext? {
|
||||||
val targetIds = compilerConfiguration.get(JVMConfigurationKeys.MODULES)?.map(::TargetId)
|
val targetIds = compilerConfiguration.get(JVMConfigurationKeys.MODULES)?.map(::TargetId)
|
||||||
val incrementalComponents = compilerConfiguration.get(JVMConfigurationKeys.INCREMENTAL_COMPILATION_COMPONENTS)
|
val incrementalComponents = compilerConfiguration.get(JVMConfigurationKeys.INCREMENTAL_COMPILATION_COMPONENTS)
|
||||||
if (targetIds == null || incrementalComponents == null) return null
|
if (targetIds == null || incrementalComponents == null) return null
|
||||||
@@ -440,7 +441,7 @@ private fun createContextForIncrementalCompilation(
|
|||||||
}
|
}
|
||||||
|
|
||||||
return if (incrementalCompilationScope == null && previousStepsSymbolProviders.isEmpty()) null
|
return if (incrementalCompilationScope == null && previousStepsSymbolProviders.isEmpty()) null
|
||||||
else FirSessionFactory.IncrementalCompilationContext(
|
else IncrementalCompilationContext(
|
||||||
previousStepsSymbolProviders, IncrementalPackagePartProvider(
|
previousStepsSymbolProviders, IncrementalPackagePartProvider(
|
||||||
projectEnvironment.getPackagePartProvider(sourceScope),
|
projectEnvironment.getPackagePartProvider(sourceScope),
|
||||||
targetIds.map(incrementalComponents::getIncrementalCache)
|
targetIds.map(incrementalComponents::getIncrementalCache)
|
||||||
|
|||||||
@@ -11,27 +11,27 @@ import org.jetbrains.kotlin.fir.analysis.js.checkers.JsExpressionCheckers
|
|||||||
import org.jetbrains.kotlin.fir.analysis.jvm.checkers.JvmDeclarationCheckers
|
import org.jetbrains.kotlin.fir.analysis.jvm.checkers.JvmDeclarationCheckers
|
||||||
import org.jetbrains.kotlin.fir.analysis.jvm.checkers.JvmExpressionCheckers
|
import org.jetbrains.kotlin.fir.analysis.jvm.checkers.JvmExpressionCheckers
|
||||||
import org.jetbrains.kotlin.fir.analysis.jvm.checkers.JvmTypeCheckers
|
import org.jetbrains.kotlin.fir.analysis.jvm.checkers.JvmTypeCheckers
|
||||||
import org.jetbrains.kotlin.fir.session.FirSessionFactory
|
import org.jetbrains.kotlin.fir.session.FirSessionConfigurator
|
||||||
|
|
||||||
fun FirSessionFactory.FirSessionConfigurator.registerCommonCheckers() {
|
fun FirSessionConfigurator.registerCommonCheckers() {
|
||||||
useCheckers(CommonDeclarationCheckers)
|
useCheckers(CommonDeclarationCheckers)
|
||||||
useCheckers(CommonExpressionCheckers)
|
useCheckers(CommonExpressionCheckers)
|
||||||
useCheckers(CommonTypeCheckers)
|
useCheckers(CommonTypeCheckers)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun FirSessionFactory.FirSessionConfigurator.registerExtendedCommonCheckers() {
|
fun FirSessionConfigurator.registerExtendedCommonCheckers() {
|
||||||
useCheckers(ExtendedExpressionCheckers)
|
useCheckers(ExtendedExpressionCheckers)
|
||||||
useCheckers(ExtendedDeclarationCheckers)
|
useCheckers(ExtendedDeclarationCheckers)
|
||||||
useCheckers(ExtendedTypeCheckers)
|
useCheckers(ExtendedTypeCheckers)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun FirSessionFactory.FirSessionConfigurator.registerJvmCheckers() {
|
fun FirSessionConfigurator.registerJvmCheckers() {
|
||||||
useCheckers(JvmDeclarationCheckers)
|
useCheckers(JvmDeclarationCheckers)
|
||||||
useCheckers(JvmExpressionCheckers)
|
useCheckers(JvmExpressionCheckers)
|
||||||
useCheckers(JvmTypeCheckers)
|
useCheckers(JvmTypeCheckers)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun FirSessionFactory.FirSessionConfigurator.registerJsCheckers() {
|
fun FirSessionConfigurator.registerJsCheckers() {
|
||||||
useCheckers(JsDeclarationCheckers)
|
useCheckers(JsDeclarationCheckers)
|
||||||
useCheckers(JsExpressionCheckers)
|
useCheckers(JsExpressionCheckers)
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -109,7 +109,7 @@ abstract class FirAbstractSessionFactory {
|
|||||||
val firProvider = FirProviderImpl(this, kotlinScopeProvider)
|
val firProvider = FirProviderImpl(this, kotlinScopeProvider)
|
||||||
register(FirProvider::class, firProvider)
|
register(FirProvider::class, firProvider)
|
||||||
|
|
||||||
FirSessionFactory.FirSessionConfigurator(this).apply {
|
FirSessionConfigurator(this).apply {
|
||||||
registerCommonCheckers()
|
registerCommonCheckers()
|
||||||
registerExtraCheckers?.invoke(this)
|
registerExtraCheckers?.invoke(this)
|
||||||
|
|
||||||
|
|||||||
+46
@@ -0,0 +1,46 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2022 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.session
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.fir.FirSession
|
||||||
|
import org.jetbrains.kotlin.fir.SessionConfiguration
|
||||||
|
import org.jetbrains.kotlin.fir.analysis.checkers.declaration.DeclarationCheckers
|
||||||
|
import org.jetbrains.kotlin.fir.analysis.checkers.expression.ExpressionCheckers
|
||||||
|
import org.jetbrains.kotlin.fir.analysis.checkers.type.TypeCheckers
|
||||||
|
import org.jetbrains.kotlin.fir.analysis.checkersComponent
|
||||||
|
import org.jetbrains.kotlin.fir.analysis.extensions.additionalCheckers
|
||||||
|
import org.jetbrains.kotlin.fir.extensions.BunchOfRegisteredExtensions
|
||||||
|
import org.jetbrains.kotlin.fir.extensions.extensionService
|
||||||
|
import org.jetbrains.kotlin.fir.extensions.registerExtensions
|
||||||
|
|
||||||
|
class FirSessionConfigurator(private val session: FirSession) {
|
||||||
|
private val registeredExtensions: MutableList<BunchOfRegisteredExtensions> = mutableListOf(BunchOfRegisteredExtensions.empty())
|
||||||
|
|
||||||
|
fun registerExtensions(extensions: BunchOfRegisteredExtensions) {
|
||||||
|
registeredExtensions += extensions
|
||||||
|
}
|
||||||
|
|
||||||
|
@OptIn(SessionConfiguration::class)
|
||||||
|
fun useCheckers(checkers: ExpressionCheckers) {
|
||||||
|
session.checkersComponent.register(checkers)
|
||||||
|
}
|
||||||
|
|
||||||
|
@OptIn(SessionConfiguration::class)
|
||||||
|
fun useCheckers(checkers: DeclarationCheckers) {
|
||||||
|
session.checkersComponent.register(checkers)
|
||||||
|
}
|
||||||
|
|
||||||
|
@OptIn(SessionConfiguration::class)
|
||||||
|
fun useCheckers(checkers: TypeCheckers) {
|
||||||
|
session.checkersComponent.register(checkers)
|
||||||
|
}
|
||||||
|
|
||||||
|
@SessionConfiguration
|
||||||
|
fun configure() {
|
||||||
|
session.extensionService.registerExtensions(registeredExtensions.reduce(BunchOfRegisteredExtensions::plus))
|
||||||
|
session.extensionService.additionalCheckers.forEach(session.checkersComponent::register)
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -9,23 +9,14 @@ import org.jetbrains.annotations.TestOnly
|
|||||||
import org.jetbrains.kotlin.config.LanguageVersionSettings
|
import org.jetbrains.kotlin.config.LanguageVersionSettings
|
||||||
import org.jetbrains.kotlin.config.LanguageVersionSettingsImpl
|
import org.jetbrains.kotlin.config.LanguageVersionSettingsImpl
|
||||||
import org.jetbrains.kotlin.fir.*
|
import org.jetbrains.kotlin.fir.*
|
||||||
import org.jetbrains.kotlin.fir.analysis.checkers.declaration.DeclarationCheckers
|
|
||||||
import org.jetbrains.kotlin.fir.analysis.checkers.expression.ExpressionCheckers
|
|
||||||
import org.jetbrains.kotlin.fir.analysis.checkers.type.TypeCheckers
|
|
||||||
import org.jetbrains.kotlin.fir.analysis.checkersComponent
|
|
||||||
import org.jetbrains.kotlin.fir.analysis.extensions.additionalCheckers
|
|
||||||
import org.jetbrains.kotlin.fir.checkers.registerJvmCheckers
|
import org.jetbrains.kotlin.fir.checkers.registerJvmCheckers
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
|
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
|
||||||
import org.jetbrains.kotlin.fir.deserialization.SingleModuleDataProvider
|
import org.jetbrains.kotlin.fir.deserialization.SingleModuleDataProvider
|
||||||
import org.jetbrains.kotlin.fir.extensions.BunchOfRegisteredExtensions
|
|
||||||
import org.jetbrains.kotlin.fir.extensions.FirExtensionRegistrar
|
import org.jetbrains.kotlin.fir.extensions.FirExtensionRegistrar
|
||||||
import org.jetbrains.kotlin.fir.extensions.extensionService
|
|
||||||
import org.jetbrains.kotlin.fir.extensions.registerExtensions
|
|
||||||
import org.jetbrains.kotlin.fir.java.FirProjectSessionProvider
|
import org.jetbrains.kotlin.fir.java.FirProjectSessionProvider
|
||||||
import org.jetbrains.kotlin.fir.java.JavaSymbolProvider
|
import org.jetbrains.kotlin.fir.java.JavaSymbolProvider
|
||||||
import org.jetbrains.kotlin.fir.java.deserialization.JvmClassFileBasedSymbolProvider
|
import org.jetbrains.kotlin.fir.java.deserialization.JvmClassFileBasedSymbolProvider
|
||||||
import org.jetbrains.kotlin.fir.java.deserialization.OptionalAnnotationClassesProvider
|
import org.jetbrains.kotlin.fir.java.deserialization.OptionalAnnotationClassesProvider
|
||||||
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.FirBuiltinSymbolProvider
|
||||||
import org.jetbrains.kotlin.fir.resolve.providers.impl.FirCloneableSymbolProvider
|
import org.jetbrains.kotlin.fir.resolve.providers.impl.FirCloneableSymbolProvider
|
||||||
import org.jetbrains.kotlin.fir.resolve.providers.impl.FirDependenciesSymbolProviderImpl
|
import org.jetbrains.kotlin.fir.resolve.providers.impl.FirDependenciesSymbolProviderImpl
|
||||||
@@ -42,43 +33,8 @@ import org.jetbrains.kotlin.platform.jvm.JvmPlatforms
|
|||||||
import org.jetbrains.kotlin.resolve.PlatformDependentAnalyzerServices
|
import org.jetbrains.kotlin.resolve.PlatformDependentAnalyzerServices
|
||||||
import org.jetbrains.kotlin.resolve.jvm.platform.JvmPlatformAnalyzerServices
|
import org.jetbrains.kotlin.resolve.jvm.platform.JvmPlatformAnalyzerServices
|
||||||
|
|
||||||
@OptIn(PrivateSessionConstructor::class, SessionConfiguration::class)
|
@OptIn(PrivateSessionConstructor::class)
|
||||||
object FirSessionFactory : FirAbstractSessionFactory() {
|
object FirSessionFactory : FirAbstractSessionFactory() {
|
||||||
class FirSessionConfigurator(private val session: FirSession) {
|
|
||||||
private val registeredExtensions: MutableList<BunchOfRegisteredExtensions> = mutableListOf(BunchOfRegisteredExtensions.empty())
|
|
||||||
|
|
||||||
fun registerExtensions(extensions: BunchOfRegisteredExtensions) {
|
|
||||||
registeredExtensions += extensions
|
|
||||||
}
|
|
||||||
|
|
||||||
fun useCheckers(checkers: ExpressionCheckers) {
|
|
||||||
session.checkersComponent.register(checkers)
|
|
||||||
}
|
|
||||||
|
|
||||||
fun useCheckers(checkers: DeclarationCheckers) {
|
|
||||||
session.checkersComponent.register(checkers)
|
|
||||||
}
|
|
||||||
|
|
||||||
fun useCheckers(checkers: TypeCheckers) {
|
|
||||||
session.checkersComponent.register(checkers)
|
|
||||||
}
|
|
||||||
|
|
||||||
@SessionConfiguration
|
|
||||||
fun configure() {
|
|
||||||
session.extensionService.registerExtensions(registeredExtensions.reduce(BunchOfRegisteredExtensions::plus))
|
|
||||||
session.extensionService.additionalCheckers.forEach(session.checkersComponent::register)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
data class IncrementalCompilationContext(
|
|
||||||
// assuming that providers here do not intersect with the one being built from precompiled binaries
|
|
||||||
// (maybe easiest way to achieve is to delete libraries
|
|
||||||
// TODO: consider passing something more abstract instead of precompiler component, in order to avoid file ops here
|
|
||||||
val previousFirSessionsSymbolProviders: Collection<FirSymbolProvider>,
|
|
||||||
val precompiledBinariesPackagePartProvider: PackagePartProvider?,
|
|
||||||
val precompiledBinariesFileScope: AbstractProjectFileSearchScope?
|
|
||||||
)
|
|
||||||
|
|
||||||
inline fun createSessionWithDependencies(
|
inline fun createSessionWithDependencies(
|
||||||
moduleName: Name,
|
moduleName: Name,
|
||||||
platform: TargetPlatform,
|
platform: TargetPlatform,
|
||||||
|
|||||||
+19
@@ -0,0 +1,19 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2022 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.session
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProvider
|
||||||
|
import org.jetbrains.kotlin.fir.session.environment.AbstractProjectFileSearchScope
|
||||||
|
import org.jetbrains.kotlin.load.kotlin.PackagePartProvider
|
||||||
|
|
||||||
|
data class IncrementalCompilationContext(
|
||||||
|
// assuming that providers here do not intersect with the one being built from precompiled binaries
|
||||||
|
// (maybe easiest way to achieve is to delete libraries
|
||||||
|
// TODO: consider passing something more abstract instead of precompiler component, in order to avoid file ops here
|
||||||
|
val previousFirSessionsSymbolProviders: Collection<FirSymbolProvider>,
|
||||||
|
val precompiledBinariesPackagePartProvider: PackagePartProvider?,
|
||||||
|
val precompiledBinariesFileScope: AbstractProjectFileSearchScope?
|
||||||
|
)
|
||||||
+3
-2
@@ -23,6 +23,7 @@ import org.jetbrains.kotlin.fir.*
|
|||||||
import org.jetbrains.kotlin.fir.FirAnalyzerFacade
|
import org.jetbrains.kotlin.fir.FirAnalyzerFacade
|
||||||
import org.jetbrains.kotlin.fir.checkers.registerExtendedCommonCheckers
|
import org.jetbrains.kotlin.fir.checkers.registerExtendedCommonCheckers
|
||||||
import org.jetbrains.kotlin.fir.extensions.FirExtensionRegistrar
|
import org.jetbrains.kotlin.fir.extensions.FirExtensionRegistrar
|
||||||
|
import org.jetbrains.kotlin.fir.session.FirSessionConfigurator
|
||||||
import org.jetbrains.kotlin.fir.session.FirSessionFactory
|
import org.jetbrains.kotlin.fir.session.FirSessionFactory
|
||||||
import org.jetbrains.kotlin.ir.backend.js.jsResolveLibraries
|
import org.jetbrains.kotlin.ir.backend.js.jsResolveLibraries
|
||||||
import org.jetbrains.kotlin.ir.backend.js.toResolverLogger
|
import org.jetbrains.kotlin.ir.backend.js.toResolverLogger
|
||||||
@@ -59,7 +60,7 @@ class FirFrontendFacade(
|
|||||||
// Separate constructor is needed for creating callable references to it
|
// Separate constructor is needed for creating callable references to it
|
||||||
constructor(testServices: TestServices) : this(testServices, additionalSessionConfiguration = null)
|
constructor(testServices: TestServices) : this(testServices, additionalSessionConfiguration = null)
|
||||||
|
|
||||||
fun interface SessionConfiguration : (FirSessionFactory.FirSessionConfigurator) -> Unit
|
fun interface SessionConfiguration : (FirSessionConfigurator) -> Unit
|
||||||
|
|
||||||
override val additionalServices: List<ServiceRegistrationData>
|
override val additionalServices: List<ServiceRegistrationData>
|
||||||
get() = listOf(service(::FirModuleInfoProvider))
|
get() = listOf(service(::FirModuleInfoProvider))
|
||||||
@@ -89,7 +90,7 @@ class FirFrontendFacade(
|
|||||||
val configuration = compilerConfigurationProvider.getCompilerConfiguration(module)
|
val configuration = compilerConfigurationProvider.getCompilerConfiguration(module)
|
||||||
val extensionRegistrars = FirExtensionRegistrar.getInstances(project)
|
val extensionRegistrars = FirExtensionRegistrar.getInstances(project)
|
||||||
|
|
||||||
val sessionConfigurator: FirSessionFactory.FirSessionConfigurator.() -> Unit = {
|
val sessionConfigurator: FirSessionConfigurator.() -> Unit = {
|
||||||
if (FirDiagnosticsDirectives.WITH_EXTENDED_CHECKERS in module.directives) {
|
if (FirDiagnosticsDirectives.WITH_EXTENDED_CHECKERS in module.directives) {
|
||||||
registerExtendedCommonCheckers()
|
registerExtendedCommonCheckers()
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -20,7 +20,7 @@ import org.jetbrains.kotlin.fir.resolve.providers.impl.FirDependenciesSymbolProv
|
|||||||
import org.jetbrains.kotlin.fir.scopes.FirKotlinScopeProvider
|
import org.jetbrains.kotlin.fir.scopes.FirKotlinScopeProvider
|
||||||
import org.jetbrains.kotlin.fir.scopes.FirPlatformClassMapper
|
import org.jetbrains.kotlin.fir.scopes.FirPlatformClassMapper
|
||||||
import org.jetbrains.kotlin.fir.session.FirAbstractSessionFactory
|
import org.jetbrains.kotlin.fir.session.FirAbstractSessionFactory
|
||||||
import org.jetbrains.kotlin.fir.session.FirSessionFactory
|
import org.jetbrains.kotlin.fir.session.FirSessionConfigurator
|
||||||
import org.jetbrains.kotlin.fir.session.KlibBasedSymbolProvider
|
import org.jetbrains.kotlin.fir.session.KlibBasedSymbolProvider
|
||||||
import org.jetbrains.kotlin.incremental.components.LookupTracker
|
import org.jetbrains.kotlin.incremental.components.LookupTracker
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
|
|||||||
+2
-1
@@ -38,6 +38,7 @@ import org.jetbrains.kotlin.fir.java.FirProjectSessionProvider
|
|||||||
import org.jetbrains.kotlin.fir.lightTree.LightTree2Fir
|
import org.jetbrains.kotlin.fir.lightTree.LightTree2Fir
|
||||||
import org.jetbrains.kotlin.fir.resolve.providers.firProvider
|
import org.jetbrains.kotlin.fir.resolve.providers.firProvider
|
||||||
import org.jetbrains.kotlin.fir.resolve.providers.impl.FirProviderImpl
|
import org.jetbrains.kotlin.fir.resolve.providers.impl.FirProviderImpl
|
||||||
|
import org.jetbrains.kotlin.fir.session.FirSessionConfigurator
|
||||||
import org.jetbrains.kotlin.fir.session.FirSessionFactory
|
import org.jetbrains.kotlin.fir.session.FirSessionFactory
|
||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
@@ -352,5 +353,5 @@ abstract class AbstractFirBaseDiagnosticsTest : BaseDiagnosticsTest() {
|
|||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
protected open fun FirSessionFactory.FirSessionConfigurator.configureSession() {}
|
protected open fun FirSessionConfigurator.configureSession() {}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user