[K2] Add Fir2IrConfiguration class to store configuration parameters

One example of such parameter is `linkViaSignatures`. There is
`Psi2IrConfiguration` as an analog for K1.
This commit is contained in:
Ivan Kylchik
2023-03-13 18:13:23 +01:00
committed by Space Team
parent 525098dea6
commit e16231104e
17 changed files with 67 additions and 37 deletions
@@ -153,10 +153,13 @@ object FirKotlinToJvmBytecodeCompiler {
performanceManager?.notifyIRTranslationStarted()
val fir2IrExtensions = JvmFir2IrExtensions(moduleConfiguration, JvmIrDeserializerImpl(), JvmIrMangler)
val fir2IrConfiguration = Fir2IrConfiguration(
linkViaSignatures = moduleConfiguration.getBoolean(JVMConfigurationKeys.LINK_VIA_SIGNATURES)
)
val fir2IrAndIrActualizerResult = firResult.convertToIrAndActualizeForJvm(
fir2IrExtensions,
fir2IrConfiguration,
irGenerationExtensions,
linkViaSignatures = moduleConfiguration.getBoolean(JVMConfigurationKeys.LINK_VIA_SIGNATURES),
diagnosticsReporter,
moduleConfiguration.languageVersionSettings
)
@@ -46,6 +46,7 @@ import org.jetbrains.kotlin.config.languageVersionSettings
import org.jetbrains.kotlin.diagnostics.DiagnosticReporter
import org.jetbrains.kotlin.diagnostics.DiagnosticReporterFactory
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.backend.Fir2IrConfiguration
import org.jetbrains.kotlin.fir.backend.jvm.FirJvmBackendClassResolver
import org.jetbrains.kotlin.fir.backend.jvm.FirJvmBackendExtension
import org.jetbrains.kotlin.fir.backend.jvm.JvmFir2IrExtensions
@@ -230,10 +231,12 @@ fun convertAnalyzedFirToIr(
(environment.projectEnvironment as? VfsBasedProjectEnvironment)?.project?.let {
IrGenerationExtension.getInstances(it)
} ?: emptyList()
val linkViaSignatures = input.configuration.getBoolean(JVMConfigurationKeys.LINK_VIA_SIGNATURES)
val fir2IrConfiguration = Fir2IrConfiguration(
linkViaSignatures = input.configuration.getBoolean(JVMConfigurationKeys.LINK_VIA_SIGNATURES)
)
val (irModuleFragment, components, pluginContext, irActualizedResult) =
analysisResults.convertToIrAndActualizeForJvm(
extensions, irGenerationExtensions, linkViaSignatures,
extensions, fir2IrConfiguration, irGenerationExtensions,
environment.diagnosticsReporter, input.configuration.languageVersionSettings
)