From 326d68c1f469a474fc87b8ffc6256e78a9b699e0 Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Thu, 21 Sep 2023 10:42:15 +0200 Subject: [PATCH] Drop separate K1/K2 implementations of generateMetadataExtraFlags Related to KT-62056 --- .../api/fir/components/KtFirMetadataCalculator.kt | 4 ++-- .../kotlin/fir/backend/jvm/FirJvmBackendExtension.kt | 11 ----------- .../kotlin/backend/jvm/codegen/ClassCodegen.kt | 3 ++- .../kotlin/backend/jvm/JvmBackendExtension.kt | 4 +--- 4 files changed, 5 insertions(+), 17 deletions(-) diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirMetadataCalculator.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirMetadataCalculator.kt index b4a6c2d2789..539f8790c23 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirMetadataCalculator.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirMetadataCalculator.kt @@ -17,6 +17,7 @@ import org.jetbrains.kotlin.analysis.api.fir.KtFirAnalysisSession import org.jetbrains.kotlin.analysis.low.level.api.fir.api.getOrBuildFirFile import org.jetbrains.kotlin.analysis.low.level.api.fir.api.getOrBuildFirOfType import org.jetbrains.kotlin.analysis.project.structure.KtSourceModule +import org.jetbrains.kotlin.backend.jvm.JvmBackendExtension import org.jetbrains.kotlin.codegen.ClassBuilderMode import org.jetbrains.kotlin.codegen.generateLanguageVersionSettingsBasedMetadataFlags import org.jetbrains.kotlin.codegen.serialization.JvmSerializationBindings @@ -24,7 +25,6 @@ import org.jetbrains.kotlin.config.JvmAbiStability import org.jetbrains.kotlin.config.JvmDefaultMode import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.backend.FirMetadataSource -import org.jetbrains.kotlin.fir.backend.jvm.FirJvmBackendExtension import org.jetbrains.kotlin.fir.backend.jvm.FirJvmSerializerExtension import org.jetbrains.kotlin.fir.backend.jvm.FirJvmSerializerExtension.Companion.FIELD_FOR_PROPERTY import org.jetbrains.kotlin.fir.backend.jvm.FirJvmSerializerExtension.Companion.METHOD_FOR_FIR_FUNCTION @@ -175,7 +175,7 @@ internal class KtFirMetadataCalculator(override val analysisSession: KtFirAnalys metadataVersion = metadataVersion.toArray(), data1 = JvmProtoBufUtil.writeData(message, stringTable), data2 = stringTable.strings.toTypedArray(), - extraInt = FirJvmBackendExtension.generateMetadataExtraFlags(JvmAbiStability.STABLE) or + extraInt = JvmBackendExtension.Default.generateMetadataExtraFlags(JvmAbiStability.STABLE) or generateLanguageVersionSettingsBasedMetadataFlags(firSession.languageVersionSettings) ) } diff --git a/compiler/fir/fir2ir/jvm-backend/src/org/jetbrains/kotlin/fir/backend/jvm/FirJvmBackendExtension.kt b/compiler/fir/fir2ir/jvm-backend/src/org/jetbrains/kotlin/fir/backend/jvm/FirJvmBackendExtension.kt index e9ae40f8e8c..9b212e072c7 100644 --- a/compiler/fir/fir2ir/jvm-backend/src/org/jetbrains/kotlin/fir/backend/jvm/FirJvmBackendExtension.kt +++ b/compiler/fir/fir2ir/jvm-backend/src/org/jetbrains/kotlin/fir/backend/jvm/FirJvmBackendExtension.kt @@ -10,10 +10,8 @@ import org.jetbrains.kotlin.backend.jvm.JvmBackendContext import org.jetbrains.kotlin.backend.jvm.JvmBackendExtension import org.jetbrains.kotlin.backend.jvm.metadata.MetadataSerializer import org.jetbrains.kotlin.codegen.serialization.JvmSerializationBindings -import org.jetbrains.kotlin.config.JvmAbiStability import org.jetbrains.kotlin.fir.backend.Fir2IrComponents import org.jetbrains.kotlin.ir.declarations.IrClass -import org.jetbrains.kotlin.load.java.JvmAnnotationNames import org.jetbrains.org.objectweb.asm.Type class FirJvmBackendExtension( @@ -37,13 +35,4 @@ class FirJvmBackendExtension( irActualizedResult ) } - - override fun generateMetadataExtraFlags(abiStability: JvmAbiStability?): Int = - Companion.generateMetadataExtraFlags(abiStability) - - companion object { - fun generateMetadataExtraFlags(abiStability: JvmAbiStability?): Int = - JvmAnnotationNames.METADATA_JVM_IR_FLAG or - (if (abiStability != JvmAbiStability.UNSTABLE) JvmAnnotationNames.METADATA_JVM_IR_STABLE_ABI_FLAG else 0) - } } diff --git a/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/codegen/ClassCodegen.kt b/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/codegen/ClassCodegen.kt index 360a70b66b3..b45157a6df1 100644 --- a/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/codegen/ClassCodegen.kt +++ b/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/codegen/ClassCodegen.kt @@ -7,6 +7,7 @@ package org.jetbrains.kotlin.backend.jvm.codegen import org.jetbrains.kotlin.backend.common.lower.ANNOTATION_IMPLEMENTATION import org.jetbrains.kotlin.backend.jvm.JvmBackendContext +import org.jetbrains.kotlin.backend.jvm.JvmBackendExtension import org.jetbrains.kotlin.backend.jvm.JvmLoweredDeclarationOrigin import org.jetbrains.kotlin.backend.jvm.MultifileFacadeFileEntry import org.jetbrains.kotlin.backend.jvm.extensions.descriptorOrigin @@ -281,7 +282,7 @@ class ClassCodegen private constructor( val isMultifileClassOrPart = kind == KotlinClassHeader.Kind.MULTIFILE_CLASS || kind == KotlinClassHeader.Kind.MULTIFILE_CLASS_PART - var extraFlags = context.backendExtension.generateMetadataExtraFlags(state.config.abiStability) + var extraFlags = JvmBackendExtension.Default.generateMetadataExtraFlags(state.config.abiStability) if (isMultifileClassOrPart && state.languageVersionSettings.getFlag(JvmAnalysisFlags.inheritMultifileParts)) { extraFlags = extraFlags or JvmAnnotationNames.METADATA_MULTIFILE_PARTS_INHERIT_FLAG } diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmBackendExtension.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmBackendExtension.kt index 841365932f2..a3c15eb58c0 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmBackendExtension.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmBackendExtension.kt @@ -18,8 +18,6 @@ interface JvmBackendExtension { context: JvmBackendContext, klass: IrClass, type: Type, bindings: JvmSerializationBindings, parentSerializer: MetadataSerializer? ): MetadataSerializer - fun generateMetadataExtraFlags(abiStability: JvmAbiStability?): Int - object Default : JvmBackendExtension { override fun createSerializer( context: JvmBackendContext, @@ -31,7 +29,7 @@ interface JvmBackendExtension { return DescriptorMetadataSerializer(context, klass, type, bindings, parentSerializer) } - override fun generateMetadataExtraFlags(abiStability: JvmAbiStability?): Int = + fun generateMetadataExtraFlags(abiStability: JvmAbiStability?): Int = JvmAnnotationNames.METADATA_JVM_IR_FLAG or (if (abiStability != JvmAbiStability.UNSTABLE) JvmAnnotationNames.METADATA_JVM_IR_STABLE_ABI_FLAG else 0) }