From 687f5fc20df338c4c9754ca133d58a877b5990ef Mon Sep 17 00:00:00 2001 From: Dmitriy Novozhilov Date: Thu, 9 Nov 2023 10:32:22 +0200 Subject: [PATCH] [Native] Add fast check that stdlib is present in klib dependencies Previous changes uncovered a problem with lacking of stdlib in dependencies, which was quite hard to debug and determine. So this check is supposed to discover similar issues in the future much more easily. --- .../src/org/jetbrains/kotlin/backend/konan/Fir2Ir.kt | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/Fir2Ir.kt b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/Fir2Ir.kt index 6f8e89868c6..7fda319eac1 100644 --- a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/Fir2Ir.kt +++ b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/Fir2Ir.kt @@ -42,7 +42,9 @@ import org.jetbrains.kotlin.ir.objcinterop.IrObjCOverridabilityCondition import org.jetbrains.kotlin.ir.types.IrTypeSystemContextImpl import org.jetbrains.kotlin.ir.util.* import org.jetbrains.kotlin.ir.visitors.acceptVoid +import org.jetbrains.kotlin.konan.library.KONAN_STDLIB_NAME import org.jetbrains.kotlin.library.metadata.KlibMetadataFactories +import org.jetbrains.kotlin.library.uniqueName import org.jetbrains.kotlin.name.NativeForwardDeclarationKind import org.jetbrains.kotlin.storage.LockBasedStorageManager @@ -148,6 +150,11 @@ internal fun PhaseContext.fir2Ir( usedPackages.any { !module.packageFragmentProviderForModuleContentWithoutDependencies.isEmpty(it) } }.map { it.second }.toSet() + resolvedLibraries.find { it.library.uniqueName == KONAN_STDLIB_NAME }?.let { + require(usedLibraries.contains(it)) { + "Internal error: stdlib must be in usedLibraries, if it's in resolvedLibraries" + } + } val symbols = createKonanSymbols(components, pluginContext)