Rename IdSignatureSerializer to IdSignatureFactory

^KT-61642
This commit is contained in:
Johan Bay
2023-09-02 07:54:24 +02:00
committed by Space Cloud
parent b1551c67e0
commit a041e51ff2
4 changed files with 24 additions and 9 deletions
@@ -21,7 +21,7 @@ import org.jetbrains.kotlin.backend.common.linkage.partial.PartialLinkageSupport
import org.jetbrains.kotlin.backend.common.serialization.CompatibilityMode
import org.jetbrains.kotlin.backend.common.serialization.DeclarationTable
import org.jetbrains.kotlin.backend.common.serialization.GlobalDeclarationTable
import org.jetbrains.kotlin.backend.common.serialization.signature.IdSignatureSerializer
import org.jetbrains.kotlin.backend.common.serialization.signature.IdSignatureFactory
import org.jetbrains.kotlin.backend.common.serialization.signature.PublicIdSignatureComputer
import org.jetbrains.kotlin.ir.builders.declarations.buildFun
import org.jetbrains.kotlin.ir.builders.declarations.buildProperty
@@ -48,10 +48,10 @@ class FakeOverrideGlobalDeclarationTable(
open class FakeOverrideDeclarationTable(
mangler: KotlinMangler.IrMangler,
globalTable: FakeOverrideGlobalDeclarationTable = FakeOverrideGlobalDeclarationTable(mangler),
signatureSerializerFactory: (PublicIdSignatureComputer, DeclarationTable) -> IdSignatureSerializer
signatureSerializerFactory: (PublicIdSignatureComputer, DeclarationTable) -> IdSignatureFactory
) : DeclarationTable(globalTable) {
override val globalDeclarationTable: FakeOverrideGlobalDeclarationTable = globalTable
override val signaturer: IdSignatureSerializer = signatureSerializerFactory(globalTable.publicIdSignatureComputer, this)
override val signaturer: IdSignatureFactory = signatureSerializerFactory(globalTable.publicIdSignatureComputer, this)
fun clear() {
this.table.clear()
@@ -81,7 +81,7 @@ class FakeOverrideBuilder(
private val partialLinkageSupport: PartialLinkageSupportForLinker,
val platformSpecificClassFilter: FakeOverrideClassFilter = DefaultFakeOverrideClassFilter,
private val fakeOverrideDeclarationTable: DeclarationTable = FakeOverrideDeclarationTable(mangler) { builder, table ->
IdSignatureSerializer(builder, table)
IdSignatureFactory(builder, table)
},
externalOverridabilityConditions: List<IrExternalOverridabilityCondition> = emptyList(),
) : FakeOverrideBuilderStrategy(
@@ -5,7 +5,7 @@
package org.jetbrains.kotlin.backend.common.serialization
import org.jetbrains.kotlin.backend.common.serialization.signature.IdSignatureSerializer
import org.jetbrains.kotlin.backend.common.serialization.signature.IdSignatureFactory
import org.jetbrains.kotlin.backend.common.serialization.signature.PublicIdSignatureComputer
import org.jetbrains.kotlin.ir.IrBuiltIns
import org.jetbrains.kotlin.ir.declarations.IrDeclaration
@@ -56,7 +56,7 @@ open class DeclarationTable(globalTable: GlobalDeclarationTable) {
protected val table = hashMapOf<IrDeclaration, IdSignature>()
protected open val globalDeclarationTable: GlobalDeclarationTable = globalTable
// TODO: we need to disentangle signature construction with declaration tables.
open val signaturer: IdSignatureSerializer = IdSignatureSerializer(globalTable.publicIdSignatureComputer, this)
open val signaturer: IdSignatureFactory = IdSignatureFactory(globalTable.publicIdSignatureComputer, this)
fun inFile(file: IrFile?, block: () -> Unit) {
signaturer.inFile(file?.symbol, block)
@@ -188,7 +188,22 @@ class PublicIdSignatureComputer(val mangler: KotlinMangler.IrMangler) : IdSignat
}
}
class IdSignatureSerializer(
/**
* `IdSignatureSerializer` has been renamed to [IdSignatureFactory]. The [IdSignatureSerializer] type alias is added here
* in place of the original `IdSignatureSerializer` class to keep source compatibility with the Compose compiler plugin
* (this is only needed for a short duration of time).
*
* The [Deprecated] annotation was commented out because it leads to compilation errors in Compose plugin due to the use of `-Werror`.
*/
//@Deprecated(
// message = "IdSignatureSerializer has been renamed to IdSignatureFactory." +
// " Need to maintain this type alias for a while to keep source compatibility with the Compose plugin.",
// replaceWith = ReplaceWith("IdSignatureFactory")
//)
@Suppress("unused")
typealias IdSignatureSerializer = IdSignatureFactory
class IdSignatureFactory(
private val publicSignatureBuilder: PublicIdSignatureComputer,
private val table: DeclarationTable,
startIndex: Int
@@ -12,7 +12,7 @@ import org.jetbrains.kotlin.backend.common.overrides.FakeOverrideDeclarationTabl
import org.jetbrains.kotlin.backend.common.overrides.FileLocalAwareLinker
import org.jetbrains.kotlin.backend.common.serialization.*
import org.jetbrains.kotlin.backend.common.serialization.encodings.BinarySymbolData
import org.jetbrains.kotlin.backend.common.serialization.signature.IdSignatureSerializer
import org.jetbrains.kotlin.backend.common.serialization.signature.IdSignatureFactory
import org.jetbrains.kotlin.backend.jvm.serialization.proto.JvmIr
import org.jetbrains.kotlin.descriptors.DescriptorVisibilities
import org.jetbrains.kotlin.ir.IrBuiltIns
@@ -193,7 +193,7 @@ private fun buildFakeOverridesForLocalClasses(
class PrePopulatedDeclarationTable(
sig2symbol: Map<IdSignature, IrSymbol>
) : FakeOverrideDeclarationTable(JvmIrMangler, signatureSerializerFactory = ::IdSignatureSerializer) {
) : FakeOverrideDeclarationTable(JvmIrMangler, signatureSerializerFactory = ::IdSignatureFactory) {
private val symbol2Sig = sig2symbol.entries.associate { (x, y) -> y to x }
override fun tryComputeBackendSpecificSignature(declaration: IrDeclaration): IdSignature? {