From 852d829d83527a4f240d75644689a8c0943f4217 Mon Sep 17 00:00:00 2001 From: Ivan Kylchik Date: Mon, 14 Aug 2023 12:46:22 +0200 Subject: [PATCH] [Native] Drop `KonanFileMetadataSource` class Replaced it with more common `DescriptorMetadataSource.File` --- .../src/org/jetbrains/kotlin/backend/konan/PsiToIr.kt | 5 +++-- .../org/jetbrains/kotlin/backend/konan/ir/NewIrUtils.kt | 8 ++++---- .../kotlin/backend/konan/serialization/KonanIrlinker.kt | 5 ----- 3 files changed, 7 insertions(+), 11 deletions(-) diff --git a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/PsiToIr.kt b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/PsiToIr.kt index 8a4bf6bdf98..23fe1e75122 100644 --- a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/PsiToIr.kt +++ b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/PsiToIr.kt @@ -24,6 +24,7 @@ import org.jetbrains.kotlin.descriptors.PropertyDescriptor import org.jetbrains.kotlin.ir.IrBuiltIns import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI import org.jetbrains.kotlin.ir.builders.TranslationPluginContext +import org.jetbrains.kotlin.ir.declarations.DescriptorMetadataSource import org.jetbrains.kotlin.ir.linkage.IrDeserializer import org.jetbrains.kotlin.ir.linkage.partial.partialLinkageConfig import org.jetbrains.kotlin.ir.symbols.IrSymbol @@ -248,9 +249,9 @@ internal fun PsiToIrContext.psiToIr( (modules.values + mainModule).single { it.descriptor == this.stdlibModule } } - mainModule.files.forEach { it.metadata = KonanFileMetadataSource(mainModule) } + mainModule.files.forEach { it.metadata = DescriptorMetadataSource.File(listOf(mainModule.descriptor)) } modules.values.forEach { module -> - module.files.forEach { it.metadata = KonanFileMetadataSource(module) } + module.files.forEach { it.metadata = DescriptorMetadataSource.File(listOf(module.descriptor)) } } return if (isProducingLibrary) { diff --git a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ir/NewIrUtils.kt b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ir/NewIrUtils.kt index 6a9c59d10ed..b376c33e029 100644 --- a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ir/NewIrUtils.kt +++ b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ir/NewIrUtils.kt @@ -11,7 +11,6 @@ import org.jetbrains.kotlin.backend.konan.descriptors.allOverriddenFunctions import org.jetbrains.kotlin.backend.konan.descriptors.isFromInteropLibrary import org.jetbrains.kotlin.backend.konan.descriptors.isInteropLibrary import org.jetbrains.kotlin.backend.konan.llvm.KonanMetadata -import org.jetbrains.kotlin.backend.konan.serialization.KonanFileMetadataSource import org.jetbrains.kotlin.descriptors.ModuleDescriptor import org.jetbrains.kotlin.ir.IrBuiltIns import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI @@ -99,13 +98,14 @@ private fun IrClass.getOverridingOf(function: IrFunction) = (function as? IrSimp } val ModuleDescriptor.konanLibrary get() = (this.klibModuleOrigin as? DeserializedKlibModuleOrigin)?.library -val IrModuleFragment.konanLibrary get() = descriptor.konanLibrary @OptIn(ObsoleteDescriptorBasedAPI::class) -val IrPackageFragment.konanLibrary : KotlinLibrary? +val IrPackageFragment.konanLibrary: KotlinLibrary? get() { if (this is IrFile) { - (metadata as? KonanFileMetadataSource)?.module?.konanLibrary?.let { return it } + val fileMetadata = metadata as? DescriptorMetadataSource.File + val moduleDescriptor = fileMetadata?.descriptors?.singleOrNull() as? ModuleDescriptor + moduleDescriptor?.konanLibrary?.let { return it } } return this.packageFragmentDescriptor.containingDeclaration.konanLibrary } diff --git a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanIrlinker.kt b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanIrlinker.kt index 5aafd51ae83..9f61ff64d8e 100644 --- a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanIrlinker.kt +++ b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanIrlinker.kt @@ -1162,8 +1162,3 @@ internal class KonanIrLinker( } } } - -class KonanFileMetadataSource(val module: IrModuleFragment) : MetadataSource.File { - override val name: Name? = null - override var serializedIr: ByteArray? = null -}