[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.
This commit is contained in:
Dmitriy Novozhilov
2023-11-09 10:32:22 +02:00
committed by Space Team
parent b4d29aa583
commit 687f5fc20d
@@ -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)