diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirCompilerFacility.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirCompilerFacility.kt index 25c51210d1e..20f97c1988f 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirCompilerFacility.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirCompilerFacility.kt @@ -24,10 +24,13 @@ import org.jetbrains.kotlin.builtins.DefaultBuiltIns import org.jetbrains.kotlin.cli.jvm.compiler.NoScopeRecordCliBindingTrace import org.jetbrains.kotlin.codegen.CodegenFactory import org.jetbrains.kotlin.codegen.state.GenerationState -import org.jetbrains.kotlin.config.* +import org.jetbrains.kotlin.config.CommonConfigurationKeys +import org.jetbrains.kotlin.config.CompilerConfiguration +import org.jetbrains.kotlin.config.languageVersionSettings import org.jetbrains.kotlin.constant.EvaluatedConstTracker import org.jetbrains.kotlin.descriptors.DeclarationDescriptor import org.jetbrains.kotlin.diagnostics.DiagnosticMarker +import org.jetbrains.kotlin.diagnostics.DiagnosticReporterFactory import org.jetbrains.kotlin.diagnostics.KtPsiDiagnostic import org.jetbrains.kotlin.diagnostics.Severity import org.jetbrains.kotlin.fir.backend.Fir2IrCommonMemberStorage @@ -80,9 +83,11 @@ internal class KtFirCompilerFacility( val generateClassFilter = SingleFileGenerateClassFilter(file, compilationPeerData.inlinedClasses) val fir2IrExtensions = JvmFir2IrExtensions(effectiveConfiguration, JvmIrDeserializerImpl(), JvmIrMangler) + val diagnosticsReporter = DiagnosticReporterFactory.createPendingReporter() val fir2IrConfiguration = Fir2IrConfiguration( effectiveConfiguration.languageVersionSettings, + diagnosticsReporter, linkViaSignatures = false, effectiveConfiguration[CommonConfigurationKeys.EVALUATED_CONST_TRACKER] ?: EvaluatedConstTracker.create(), effectiveConfiguration[CommonConfigurationKeys.INLINE_CONST_TRACKER] @@ -117,6 +122,7 @@ internal class KtFirCompilerFacility( effectiveConfiguration, ).generateDeclaredClassFilter(generateClassFilter) .codegenFactory(codegenFactory) + .diagnosticReporter(diagnosticsReporter) .build() try { diff --git a/compiler/cli/cli-js/src/org/jetbrains/kotlin/cli/js/klib/compilerPipeline.kt b/compiler/cli/cli-js/src/org/jetbrains/kotlin/cli/js/klib/compilerPipeline.kt index e03c2becd4c..d2eefd04121 100644 --- a/compiler/cli/cli-js/src/org/jetbrains/kotlin/cli/js/klib/compilerPipeline.kt +++ b/compiler/cli/cli-js/src/org/jetbrains/kotlin/cli/js/klib/compilerPipeline.kt @@ -229,6 +229,7 @@ fun transformFirToIr( fir2IrExtensions, Fir2IrConfiguration( languageVersionSettings = moduleStructure.compilerConfiguration.languageVersionSettings, + diagnosticReporter = diagnosticsReporter, linkViaSignatures = false, evaluatedConstTracker = moduleStructure.compilerConfiguration .putIfAbsent(CommonConfigurationKeys.EVALUATED_CONST_TRACKER, EvaluatedConstTracker.create()), @@ -240,12 +241,10 @@ fun transformFirToIr( firMangler = FirJsKotlinMangler(), visibilityConverter = Fir2IrVisibilityConverter.Default, kotlinBuiltIns = builtInsModule ?: DefaultBuiltIns.Instance, - diagnosticReporter = diagnosticsReporter, - actualizerTypeContextProvider = ::IrTypeSystemContextImpl, - fir2IrResultPostCompute = { - (this.irModuleFragment.descriptor as? FirModuleDescriptor)?.let { it.allDependencyModules = librariesDescriptors } - } - ) + actualizerTypeContextProvider = ::IrTypeSystemContextImpl + ) { + (this.irModuleFragment.descriptor as? FirModuleDescriptor)?.let { it.allDependencyModules = librariesDescriptors } + } } private class Fir2KlibSerializer( diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/FirKotlinToJvmBytecodeCompiler.kt b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/FirKotlinToJvmBytecodeCompiler.kt index 7fda3f12355..5acf71fbd31 100644 --- a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/FirKotlinToJvmBytecodeCompiler.kt +++ b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/FirKotlinToJvmBytecodeCompiler.kt @@ -155,6 +155,7 @@ object FirKotlinToJvmBytecodeCompiler { val fir2IrExtensions = JvmFir2IrExtensions(moduleConfiguration, JvmIrDeserializerImpl(), JvmIrMangler) val fir2IrConfiguration = Fir2IrConfiguration( languageVersionSettings = moduleConfiguration.languageVersionSettings, + diagnosticReporter = diagnosticsReporter, linkViaSignatures = moduleConfiguration.getBoolean(JVMConfigurationKeys.LINK_VIA_SIGNATURES), evaluatedConstTracker = moduleConfiguration .putIfAbsent(CommonConfigurationKeys.EVALUATED_CONST_TRACKER, EvaluatedConstTracker.create()), @@ -164,7 +165,6 @@ object FirKotlinToJvmBytecodeCompiler { fir2IrExtensions, fir2IrConfiguration, irGenerationExtensions, - diagnosticsReporter, ) performanceManager?.notifyIRTranslationFinished() diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/pipeline/compilerPipeline.kt b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/pipeline/compilerPipeline.kt index da4f8e88bc7..54bf85bb583 100644 --- a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/pipeline/compilerPipeline.kt +++ b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/pipeline/compilerPipeline.kt @@ -180,6 +180,7 @@ fun convertAnalyzedFirToIr( } ?: emptyList() val fir2IrConfiguration = Fir2IrConfiguration( languageVersionSettings = input.configuration.languageVersionSettings, + diagnosticReporter = environment.diagnosticsReporter, linkViaSignatures = input.configuration.getBoolean(JVMConfigurationKeys.LINK_VIA_SIGNATURES), evaluatedConstTracker = input.configuration .putIfAbsent(CommonConfigurationKeys.EVALUATED_CONST_TRACKER, EvaluatedConstTracker.create()), @@ -187,7 +188,7 @@ fun convertAnalyzedFirToIr( ) val (irModuleFragment, components, pluginContext, irActualizedResult) = analysisResults.convertToIrAndActualizeForJvm( - extensions, fir2IrConfiguration, irGenerationExtensions, environment.diagnosticsReporter, + extensions, fir2IrConfiguration, irGenerationExtensions, ) return ModuleCompilerIrBackendInput( diff --git a/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/pipeline/convertToIr.kt b/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/pipeline/convertToIr.kt index 58d4962caf6..28716d814b7 100644 --- a/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/pipeline/convertToIr.kt +++ b/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/pipeline/convertToIr.kt @@ -13,7 +13,6 @@ import org.jetbrains.kotlin.backend.jvm.JvmIrTypeSystemContext import org.jetbrains.kotlin.backend.jvm.serialization.JvmIdSignatureDescriptor import org.jetbrains.kotlin.builtins.DefaultBuiltIns import org.jetbrains.kotlin.builtins.KotlinBuiltIns -import org.jetbrains.kotlin.diagnostics.DiagnosticReporter import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.backend.* import org.jetbrains.kotlin.fir.backend.jvm.Fir2IrJvmSpecialAnnotationSymbolProvider @@ -69,7 +68,6 @@ fun FirResult.convertToIrAndActualizeForJvm( fir2IrExtensions: Fir2IrExtensions, fir2IrConfiguration: Fir2IrConfiguration, irGeneratorExtensions: Collection, - diagnosticReporter: DiagnosticReporter, ): Fir2IrActualizedResult = this.convertToIrAndActualize( fir2IrExtensions, fir2IrConfiguration, @@ -78,7 +76,6 @@ fun FirResult.convertToIrAndActualizeForJvm( irMangler = JvmIrMangler, firMangler = FirJvmKotlinMangler(), visibilityConverter = FirJvmVisibilityConverter, - diagnosticReporter = diagnosticReporter, kotlinBuiltIns = DefaultBuiltIns.Instance, actualizerTypeContextProvider = ::JvmIrTypeSystemContext, ) @@ -101,7 +98,6 @@ fun FirResult.convertToIrAndActualize( firMangler: FirMangler, visibilityConverter: Fir2IrVisibilityConverter, kotlinBuiltIns: KotlinBuiltIns, - diagnosticReporter: DiagnosticReporter, actualizerTypeContextProvider: (IrBuiltIns) -> IrTypeSystemContext, fir2IrResultPostCompute: Fir2IrResult.() -> Unit = {}, ): Fir2IrActualizedResult { @@ -161,7 +157,7 @@ fun FirResult.convertToIrAndActualize( actualizationResult = IrActualizer.actualize( fir2IrResult.irModuleFragment, commonIrOutputs.map { it.irModuleFragment }, - diagnosticReporter, + fir2IrConfiguration.diagnosticReporter, actualizerTypeContextProvider(fir2IrResult.irModuleFragment.irBuiltins), fir2IrConfiguration.languageVersionSettings ) diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrConfiguration.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrConfiguration.kt index 75f47a6f819..00478cb35d9 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrConfiguration.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrConfiguration.kt @@ -18,10 +18,12 @@ package org.jetbrains.kotlin.fir.backend import org.jetbrains.kotlin.config.LanguageVersionSettings import org.jetbrains.kotlin.constant.EvaluatedConstTracker +import org.jetbrains.kotlin.diagnostics.DiagnosticReporter import org.jetbrains.kotlin.incremental.components.InlineConstTracker data class Fir2IrConfiguration( val languageVersionSettings: LanguageVersionSettings, + val diagnosticReporter: DiagnosticReporter, val linkViaSignatures: Boolean, val evaluatedConstTracker: EvaluatedConstTracker, val inlineConstTracker: InlineConstTracker?, diff --git a/compiler/incremental-compilation-impl/src/org/jetbrains/kotlin/incremental/IncrementalFirJvmCompilerRunner.kt b/compiler/incremental-compilation-impl/src/org/jetbrains/kotlin/incremental/IncrementalFirJvmCompilerRunner.kt index 5700d1de355..ad01aaf060c 100644 --- a/compiler/incremental-compilation-impl/src/org/jetbrains/kotlin/incremental/IncrementalFirJvmCompilerRunner.kt +++ b/compiler/incremental-compilation-impl/src/org/jetbrains/kotlin/incremental/IncrementalFirJvmCompilerRunner.kt @@ -276,6 +276,7 @@ open class IncrementalFirJvmCompilerRunner( val extensions = JvmFir2IrExtensions(configuration, JvmIrDeserializerImpl(), JvmIrMangler) val fir2IrConfiguration = Fir2IrConfiguration( languageVersionSettings = configuration.languageVersionSettings, + diagnosticReporter = compilerEnvironment.diagnosticsReporter, linkViaSignatures = false, evaluatedConstTracker = configuration .putIfAbsent(CommonConfigurationKeys.EVALUATED_CONST_TRACKER, EvaluatedConstTracker.create()), @@ -284,7 +285,7 @@ open class IncrementalFirJvmCompilerRunner( val irGenerationExtensions = (projectEnvironment as? VfsBasedProjectEnvironment)?.project?.let { IrGenerationExtension.getInstances(it) }.orEmpty() val (irModuleFragment, components, pluginContext, irActualizedResult) = cycleResult.convertToIrAndActualizeForJvm( - extensions, fir2IrConfiguration, irGenerationExtensions, compilerEnvironment.diagnosticsReporter, + extensions, fir2IrConfiguration, irGenerationExtensions, ) performanceManager?.notifyIRTranslationFinished() diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/Fir2IrJsResultsConverter.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/Fir2IrJsResultsConverter.kt index a39259dfc8f..cce28df642a 100644 --- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/Fir2IrJsResultsConverter.kt +++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/Fir2IrJsResultsConverter.kt @@ -17,6 +17,7 @@ import org.jetbrains.kotlin.config.languageVersionSettings import org.jetbrains.kotlin.constant.EvaluatedConstTracker import org.jetbrains.kotlin.descriptors.ModuleDescriptor import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl +import org.jetbrains.kotlin.diagnostics.DiagnosticReporter import org.jetbrains.kotlin.diagnostics.DiagnosticReporterFactory import org.jetbrains.kotlin.fir.backend.* import org.jetbrains.kotlin.fir.backend.js.FirJsKotlinMangler @@ -82,13 +83,15 @@ class Fir2IrJsResultsConverter( val commonMemberStorage = Fir2IrCommonMemberStorage(IdSignatureDescriptor(JsManglerDesc), FirJsKotlinMangler()) val irMangler = JsManglerIr + val diagnosticReporter = DiagnosticReporterFactory.createReporter() for ((index, part) in inputArtifact.partsForDependsOnModules.withIndex()) { val (irModuleFragment, components, pluginContext) = part.firAnalyzerFacade.result.outputs.single().convertToJsIr( + testServices, module, configuration, - testServices, + diagnosticReporter, commonMemberStorage, irBuiltIns, ) @@ -119,7 +122,7 @@ class Fir2IrJsResultsConverter( sourceFiles, configuration.incrementalDataProvider?.getSerializedData(sourceFiles) ?: emptyList(), expectDescriptorToSymbol = mutableMapOf(), - diagnosticReporter = DiagnosticReporterFactory.createReporter(), + diagnosticReporter = diagnosticReporter, hasErrors = inputArtifact.hasErrors, descriptorMangler = commonMemberStorage.symbolTable.signaturer.mangler, irMangler = irMangler, @@ -150,9 +153,10 @@ class Fir2IrJsResultsConverter( } fun ModuleCompilerAnalyzedOutput.convertToJsIr( + testServices: TestServices, module: TestModule, configuration: CompilerConfiguration, - testServices: TestServices, + diagnosticReporter: DiagnosticReporter, commonMemberStorage: Fir2IrCommonMemberStorage, irBuiltIns: IrBuiltInsOverFir? ): Fir2IrResult { @@ -162,6 +166,7 @@ fun ModuleCompilerAnalyzedOutput.convertToJsIr( val fir2IrConfiguration = Fir2IrConfiguration( languageVersionSettings = configuration.languageVersionSettings, + diagnosticReporter = diagnosticReporter, linkViaSignatures = true, evaluatedConstTracker = configuration .putIfAbsent(CommonConfigurationKeys.EVALUATED_CONST_TRACKER, EvaluatedConstTracker.create()), diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/Fir2IrJvmResultsConverter.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/Fir2IrJvmResultsConverter.kt index 99980e99908..90f4ea75205 100644 --- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/Fir2IrJvmResultsConverter.kt +++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/Fir2IrJvmResultsConverter.kt @@ -17,6 +17,7 @@ import org.jetbrains.kotlin.config.CommonConfigurationKeys import org.jetbrains.kotlin.config.JVMConfigurationKeys import org.jetbrains.kotlin.constant.EvaluatedConstTracker import org.jetbrains.kotlin.container.get +import org.jetbrains.kotlin.diagnostics.DiagnosticReporterFactory import org.jetbrains.kotlin.fir.backend.Fir2IrCommonMemberStorage import org.jetbrains.kotlin.fir.backend.Fir2IrComponents import org.jetbrains.kotlin.fir.backend.Fir2IrConfiguration @@ -92,17 +93,18 @@ class Fir2IrJvmResultsConverter( .getBoolean(JVMConfigurationKeys.LINK_VIA_SIGNATURES) val commonMemberStorage = Fir2IrCommonMemberStorage(signatureComposerForJvmFir2Ir(generateSignatures), FirJvmKotlinMangler()) var irBuiltIns: IrBuiltInsOverFir? = null + val diagnosticReporter = DiagnosticReporterFactory.createReporter() for ((index, firOutputPart) in inputArtifact.partsForDependsOnModules.withIndex()) { val compilerConfiguration = compilerConfigurationProvider.getCompilerConfiguration(module) val fir2IrConfiguration = Fir2IrConfiguration( languageVersionSettings = module.languageVersionSettings, + diagnosticReporter = diagnosticReporter, linkViaSignatures = compilerConfiguration.getBoolean(JVMConfigurationKeys.LINK_VIA_SIGNATURES), evaluatedConstTracker = compilerConfiguration .putIfAbsent(CommonConfigurationKeys.EVALUATED_CONST_TRACKER, EvaluatedConstTracker.create()), inlineConstTracker = compilerConfiguration[CommonConfigurationKeys.INLINE_CONST_TRACKER], ) - val (irModuleFragment, components, pluginContext) = firOutputPart.firAnalyzerFacade.result.outputs.single().convertToIr( fir2IrExtensions, fir2IrConfiguration, @@ -139,6 +141,8 @@ class Fir2IrJvmResultsConverter( true ).jvmBackendClassResolver( FirJvmBackendClassResolver(mainModuleComponents) + ).diagnosticReporter( + diagnosticReporter ).build() val result = IrBackendInput.JvmIrBackendInput( diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/Fir2IrWasmResultsConverter.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/Fir2IrWasmResultsConverter.kt index 9fca17ac1d0..28e611b811b 100644 --- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/Fir2IrWasmResultsConverter.kt +++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/Fir2IrWasmResultsConverter.kt @@ -17,6 +17,7 @@ import org.jetbrains.kotlin.config.languageVersionSettings import org.jetbrains.kotlin.constant.EvaluatedConstTracker import org.jetbrains.kotlin.descriptors.ModuleDescriptor import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl +import org.jetbrains.kotlin.diagnostics.DiagnosticReporter import org.jetbrains.kotlin.diagnostics.DiagnosticReporterFactory import org.jetbrains.kotlin.fir.backend.* import org.jetbrains.kotlin.fir.backend.js.FirJsKotlinMangler @@ -80,13 +81,15 @@ class Fir2IrWasmResultsConverter( var irBuiltIns: IrBuiltInsOverFir? = null val commonMemberStorage = Fir2IrCommonMemberStorage(IdSignatureDescriptor(JsManglerDesc), FirJsKotlinMangler()) + val diagnosticReporter = DiagnosticReporterFactory.createReporter() for ((index, part) in inputArtifact.partsForDependsOnModules.withIndex()) { val (irModuleFragment, components, pluginContext) = part.firAnalyzerFacade.result.outputs.single().convertToWasmIr( + testServices, module, configuration, - testServices, + diagnosticReporter, commonMemberStorage, irBuiltIns, ) @@ -117,7 +120,7 @@ class Fir2IrWasmResultsConverter( sourceFiles, configuration.incrementalDataProvider?.getSerializedData(sourceFiles) ?: emptyList(), expectDescriptorToSymbol = mutableMapOf(), - diagnosticReporter = DiagnosticReporterFactory.createReporter(), + diagnosticReporter = diagnosticReporter, hasErrors = inputArtifact.hasErrors, descriptorMangler = commonMemberStorage.symbolTable.signaturer.mangler, irMangler = JsManglerIr, @@ -146,9 +149,10 @@ class Fir2IrWasmResultsConverter( } fun ModuleCompilerAnalyzedOutput.convertToWasmIr( + testServices: TestServices, module: TestModule, configuration: CompilerConfiguration, - testServices: TestServices, + diagnosticReporter: DiagnosticReporter, commonMemberStorage: Fir2IrCommonMemberStorage, irBuiltIns: IrBuiltInsOverFir? ): Fir2IrResult { @@ -158,6 +162,7 @@ fun ModuleCompilerAnalyzedOutput.convertToWasmIr( val fir2IrConfiguration = Fir2IrConfiguration( languageVersionSettings = configuration.languageVersionSettings, + diagnosticReporter = diagnosticReporter, linkViaSignatures = true, evaluatedConstTracker = configuration .putIfAbsent(CommonConfigurationKeys.EVALUATED_CONST_TRACKER, EvaluatedConstTracker.create()), diff --git a/compiler/tests-compiler-utils/tests/org/jetbrains/kotlin/codegen/GenerationUtils.kt b/compiler/tests-compiler-utils/tests/org/jetbrains/kotlin/codegen/GenerationUtils.kt index 4781be0bd17..6f3c3e1dc5a 100644 --- a/compiler/tests-compiler-utils/tests/org/jetbrains/kotlin/codegen/GenerationUtils.kt +++ b/compiler/tests-compiler-utils/tests/org/jetbrains/kotlin/codegen/GenerationUtils.kt @@ -30,6 +30,7 @@ import org.jetbrains.kotlin.config.CompilerConfiguration import org.jetbrains.kotlin.config.JVMConfigurationKeys import org.jetbrains.kotlin.config.languageVersionSettings import org.jetbrains.kotlin.constant.EvaluatedConstTracker +import org.jetbrains.kotlin.diagnostics.DiagnosticReporterFactory import org.jetbrains.kotlin.fir.FirAnalyzerFacade import org.jetbrains.kotlin.fir.FirTestSessionFactoryHelper import org.jetbrains.kotlin.fir.backend.Fir2IrCommonMemberStorage @@ -126,9 +127,11 @@ object GenerationUtils { ) val fir2IrExtensions = JvmFir2IrExtensions(configuration, JvmIrDeserializerImpl(), JvmIrMangler) + val diagnosticReporter = DiagnosticReporterFactory.createReporter() val fir2IrConfiguration = Fir2IrConfiguration( languageVersionSettings = configuration.languageVersionSettings, + diagnosticReporter = diagnosticReporter, linkViaSignatures = linkViaSignatures, evaluatedConstTracker = configuration .putIfAbsent(CommonConfigurationKeys.EVALUATED_CONST_TRACKER, EvaluatedConstTracker.create()), @@ -160,6 +163,8 @@ object GenerationUtils { true ).jvmBackendClassResolver( FirJvmBackendClassResolver(components) + ).diagnosticReporter( + diagnosticReporter ).build() generationState.beforeCompile() diff --git a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/Fir2Ir.kt b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/Fir2Ir.kt index a5d118c3f48..5925efe640f 100644 --- a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/Fir2Ir.kt +++ b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/Fir2Ir.kt @@ -6,8 +6,8 @@ import org.jetbrains.kotlin.backend.common.serialization.metadata.DynamicTypeDes import org.jetbrains.kotlin.backend.konan.driver.PhaseContext import org.jetbrains.kotlin.backend.konan.driver.phases.Fir2IrOutput import org.jetbrains.kotlin.backend.konan.driver.phases.FirOutput -import org.jetbrains.kotlin.backend.konan.ir.SymbolOverIrLookupUtils import org.jetbrains.kotlin.backend.konan.ir.KonanSymbols +import org.jetbrains.kotlin.backend.konan.ir.SymbolOverIrLookupUtils import org.jetbrains.kotlin.backend.konan.serialization.KonanIdSignaturer import org.jetbrains.kotlin.backend.konan.serialization.KonanManglerDesc import org.jetbrains.kotlin.backend.konan.serialization.KonanManglerIr @@ -21,7 +21,6 @@ import org.jetbrains.kotlin.config.languageVersionSettings import org.jetbrains.kotlin.constant.EvaluatedConstTracker import org.jetbrains.kotlin.descriptors.isEmpty import org.jetbrains.kotlin.descriptors.konan.isNativeStdlib -import org.jetbrains.kotlin.fir.backend.Fir2IrConfiguration import org.jetbrains.kotlin.diagnostics.DiagnosticReporterFactory import org.jetbrains.kotlin.fir.backend.* import org.jetbrains.kotlin.fir.descriptors.FirModuleDescriptor @@ -35,8 +34,8 @@ import org.jetbrains.kotlin.ir.types.IrTypeSystemContextImpl import org.jetbrains.kotlin.ir.util.* import org.jetbrains.kotlin.ir.visitors.acceptVoid import org.jetbrains.kotlin.library.metadata.KlibMetadataFactories +import org.jetbrains.kotlin.name.NativeForwardDeclarationKind import org.jetbrains.kotlin.storage.LockBasedStorageManager -import org.jetbrains.kotlin.name.* internal val KlibFactories = KlibMetadataFactories(::KonanBuiltIns, DynamicTypeDeserializer) @@ -73,21 +72,22 @@ internal fun PhaseContext.fir2Ir( } val diagnosticsReporter = DiagnosticReporterFactory.createPendingReporter() + val fir2IrConfiguration = Fir2IrConfiguration( + languageVersionSettings = configuration.languageVersionSettings, + diagnosticReporter = diagnosticsReporter, + linkViaSignatures = false, + evaluatedConstTracker = configuration + .putIfAbsent(CommonConfigurationKeys.EVALUATED_CONST_TRACKER, EvaluatedConstTracker.create()), + inlineConstTracker = null, + ) val (irModuleFragment, components, pluginContext, irActualizedResult) = input.firResult.convertToIrAndActualize( fir2IrExtensions, - Fir2IrConfiguration( - languageVersionSettings = configuration.languageVersionSettings, - linkViaSignatures = false, - evaluatedConstTracker = configuration - .putIfAbsent(CommonConfigurationKeys.EVALUATED_CONST_TRACKER, EvaluatedConstTracker.create()), - inlineConstTracker = null, - ), + fir2IrConfiguration, IrGenerationExtension.getInstances(config.project), signatureComposer = DescriptorSignatureComposerStub(KonanManglerDesc), irMangler = KonanManglerIr, firMangler = FirNativeKotlinMangler(), visibilityConverter = Fir2IrVisibilityConverter.Default, - diagnosticReporter = diagnosticsReporter, kotlinBuiltIns = builtInsModule ?: DefaultBuiltIns.Instance, actualizerTypeContextProvider = ::IrTypeSystemContextImpl, fir2IrResultPostCompute = {