From f6b8b3438a2aaaa57c009f7233e16cc6ff8e671d Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Fri, 2 Dec 2022 13:22:13 +0100 Subject: [PATCH] Extract & use GenerationState.metadataVersion helper --- .../kotlin/codegen/state/GenerationState.kt | 13 ++++++++++--- .../org/jetbrains/kotlin/cli/js/K2JsIrCompiler.kt | 4 +--- .../kotlin/fir/backend/jvm/FirMetadataSerializer.kt | 3 +-- .../test/frontend/fir/Fir2IrJsResultsConverter.kt | 4 +--- 4 files changed, 13 insertions(+), 11 deletions(-) diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/state/GenerationState.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/state/GenerationState.kt index 2bd6a2b4b87..8dadfa42c22 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/state/GenerationState.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/state/GenerationState.kt @@ -33,6 +33,7 @@ import org.jetbrains.kotlin.diagnostics.DiagnosticSink import org.jetbrains.kotlin.idea.MainFunctionDetector import org.jetbrains.kotlin.load.java.components.JavaDeprecationSettings import org.jetbrains.kotlin.load.kotlin.incremental.components.IncrementalCache +import org.jetbrains.kotlin.metadata.deserialization.BinaryVersion import org.jetbrains.kotlin.metadata.jvm.deserialization.JvmMetadataVersion import org.jetbrains.kotlin.modules.TargetId import org.jetbrains.kotlin.name.FqName @@ -346,9 +347,7 @@ class GenerationState private constructor( val disableOptimization = configuration.get(JVMConfigurationKeys.DISABLE_OPTIMIZATION, false) - val metadataVersion = - configuration.get(CommonConfigurationKeys.METADATA_VERSION) - ?: LANGUAGE_TO_METADATA_VERSION.getValue(languageVersionSettings.languageVersion) + val metadataVersion = metadataVersion(configuration) val abiStability = configuration.get(JVMConfigurationKeys.ABI_STABILITY) @@ -460,6 +459,14 @@ class GenerationState private constructor( "in `GenerationState.LANGUAGE_TO_METADATA_VERSION`" } } + + fun metadataVersion( + configuration: CompilerConfiguration, + languageVersionSettings: LanguageVersionSettings = configuration.languageVersionSettings + ): BinaryVersion { + return configuration.get(CommonConfigurationKeys.METADATA_VERSION) + ?: LANGUAGE_TO_METADATA_VERSION.getValue(languageVersionSettings.languageVersion) + } } } diff --git a/compiler/cli/cli-js/src/org/jetbrains/kotlin/cli/js/K2JsIrCompiler.kt b/compiler/cli/cli-js/src/org/jetbrains/kotlin/cli/js/K2JsIrCompiler.kt index 5020664bfb5..753d776074f 100644 --- a/compiler/cli/cli-js/src/org/jetbrains/kotlin/cli/js/K2JsIrCompiler.kt +++ b/compiler/cli/cli-js/src/org/jetbrains/kotlin/cli/js/K2JsIrCompiler.kt @@ -609,9 +609,7 @@ class K2JsIrCompiler : CLICompiler() { // TODO: expect -> actual mapping val expectDescriptorToSymbol = mutableMapOf() - val metadataVersion = - configuration.get(CommonConfigurationKeys.METADATA_VERSION) - ?: GenerationState.LANGUAGE_TO_METADATA_VERSION.getValue(configuration.languageVersionSettings.languageVersion) + val metadataVersion = GenerationState.metadataVersion(configuration) serializeModuleIntoKlib( configuration[CommonConfigurationKeys.MODULE_NAME]!!, diff --git a/compiler/fir/fir2ir/jvm-backend/src/org/jetbrains/kotlin/fir/backend/jvm/FirMetadataSerializer.kt b/compiler/fir/fir2ir/jvm-backend/src/org/jetbrains/kotlin/fir/backend/jvm/FirMetadataSerializer.kt index 1e40370d374..8d83dbf0f1f 100644 --- a/compiler/fir/fir2ir/jvm-backend/src/org/jetbrains/kotlin/fir/backend/jvm/FirMetadataSerializer.kt +++ b/compiler/fir/fir2ir/jvm-backend/src/org/jetbrains/kotlin/fir/backend/jvm/FirMetadataSerializer.kt @@ -92,8 +92,7 @@ fun makeLocalFirMetadataSerializerForMetadataSource( configuration.getBoolean(JVMConfigurationKeys.DISABLE_PARAM_ASSERTIONS), session.languageVersionSettings.apiVersion >= ApiVersion.KOTLIN_1_4 && !configuration.getBoolean(JVMConfigurationKeys.NO_UNIFIED_NULL_CHECKS), - configuration.get(CommonConfigurationKeys.METADATA_VERSION) - ?: GenerationState.LANGUAGE_TO_METADATA_VERSION.getValue(session.languageVersionSettings.languageVersion), + GenerationState.metadataVersion(configuration, session.languageVersionSettings), session.languageVersionSettings.getFlag(JvmAnalysisFlags.jvmDefaultMode), stringTable ) 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 0bca15f61ce..256ac53ae9f 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 @@ -76,9 +76,7 @@ class Fir2IrJsResultsConverter( val icData = configuration.incrementalDataProvider?.getSerializedData(sourceFiles) ?: emptyList() val expectDescriptorToSymbol = mutableMapOf() - val metadataVersion = - configuration.get(CommonConfigurationKeys.METADATA_VERSION) - ?: GenerationState.LANGUAGE_TO_METADATA_VERSION.getValue(module.languageVersionSettings.languageVersion) + val metadataVersion = GenerationState.metadataVersion(configuration, module.languageVersionSettings) // At this point, checkers will already have been run by a previous test step. `runCheckers` returns the cached diagnostics map. val diagnosticsMap = inputArtifact.partsForDependsOnModules.last().firAnalyzerFacade.runCheckers()