Drop separate K1/K2 implementations of generateMetadataExtraFlags

Related to KT-62056
This commit is contained in:
Mikhail Glukhikh
2023-09-21 10:42:15 +02:00
committed by Space Team
parent 8b8088720b
commit 326d68c1f4
4 changed files with 5 additions and 17 deletions
@@ -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)
)
}
@@ -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)
}
}
@@ -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
}
@@ -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)
}