[FIR2IR] Don't use descriptor manglers in FIR2IR

They don't do anything, only complicate the initial configuration.

KT-64990
This commit is contained in:
Sergej Jaskiewicz
2024-01-15 19:48:34 +01:00
committed by Space Team
parent 8b4cc050eb
commit bc5810ee67
21 changed files with 34 additions and 109 deletions
@@ -68,7 +68,7 @@ open class FragmentDeclarationGenerator(
isInline = false,
isExpect = false,
returnType = irClass.defaultType,
symbol = IrConstructorPublicSymbolImpl(context.symbolTable.signaturer.composeSignature(irClass.descriptor)!!),
symbol = IrConstructorPublicSymbolImpl(context.symbolTable.signaturer!!.composeSignature(irClass.descriptor)!!),
isPrimary = true,
isExternal = false
)
@@ -38,7 +38,7 @@ open class DescriptorSymbolTableExtension(table: SymbolTable) : SymbolTableExten
get() = table.nameProvider
private val signatureComposer: IdSignatureComposer
get() = table.signaturer
get() = table.signaturer!!
private val externalPackageFragmentSlice: SymbolTableSlice<PackageFragmentDescriptor, IrExternalPackageFragment, IrExternalPackageFragmentSymbol> = SymbolTableSlice.Flat(lock)
@@ -17,7 +17,7 @@ private fun <SymbolOwner : IrSymbolOwner, Symbol : IrBindableSymbol<*, SymbolOwn
@OptIn(SymbolTableInternals::class)
open class SymbolTable(
val signaturer: IdSignatureComposer,
val signaturer: IdSignatureComposer?, // TODO: This is `null` only in FIR2IR. Make non-nullable again after KT-64990 is fixed.
val irFactory: IrFactory,
val nameProvider: NameProvider = NameProvider.DEFAULT,
) : ReferenceSymbolTable {
@@ -94,8 +94,13 @@ fun deserializeFromByteArray(
deserializer.deserializeDeclaration(declarationProto, setParent = false)
}
symbolTable.signaturer.withFileSignature(dummyFileSignature) {
val signaturer = symbolTable.signaturer
if (signaturer == null) {
ExternalDependenciesGenerator(symbolTable, irProviders).generateUnboundSymbolsAsDependencies()
} else {
signaturer.withFileSignature(dummyFileSignature) {
ExternalDependenciesGenerator(symbolTable, irProviders).generateUnboundSymbolsAsDependencies()
}
}
toplevelParent.acceptChildrenVoid(PatchDeclarationParentsVisitor(toplevelParent))
buildFakeOverridesForLocalClasses(symbolTable, typeSystemContext, symbolDeserializer, toplevelParent)