[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:
@@ -25,6 +25,7 @@ import org.jetbrains.kotlin.fir.BinaryModuleData
|
||||
import org.jetbrains.kotlin.fir.DependencyListForCliModule
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.backend.ConstValueProviderImpl
|
||||
import org.jetbrains.kotlin.fir.backend.Fir2IrConfiguration
|
||||
import org.jetbrains.kotlin.fir.backend.Fir2IrExtensions
|
||||
import org.jetbrains.kotlin.fir.backend.Fir2IrVisibilityConverter
|
||||
import org.jetbrains.kotlin.fir.backend.extractFirDeclarations
|
||||
@@ -129,8 +130,8 @@ fun transformFirToIr(
|
||||
val firResult = FirResult(firOutputs)
|
||||
return firResult.convertToIrAndActualize(
|
||||
fir2IrExtensions,
|
||||
Fir2IrConfiguration(linkViaSignatures = false),
|
||||
IrGenerationExtension.getInstances(moduleStructure.project),
|
||||
linkViaSignatures = false,
|
||||
signatureComposerCreator = null,
|
||||
irMangler = JsManglerIr,
|
||||
firManglerCreator = ::FirJsKotlinMangler,
|
||||
|
||||
+4
-1
@@ -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
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user