diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/KotlinIrLinker.kt b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/KotlinIrLinker.kt index 177775d8b70..6796aefbe2d 100644 --- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/KotlinIrLinker.kt +++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/KotlinIrLinker.kt @@ -681,7 +681,9 @@ abstract class KotlinIrLinker( deserializersForModules.entries.find { it.key.name == moduleName }?.value ?: error("No module for name '$moduleName' found") assert(signature == signature.topLevelSignature()) { "Signature '$signature' has to be top level" } if (signature !in moduleDeserializer) error("No signature $signature in module $moduleName") - return moduleDeserializer.deserializeIrSymbol(signature, topLevelKindToSymbolKind(kind)) + return moduleDeserializer.deserializeIrSymbol(signature, topLevelKindToSymbolKind(kind)).also { + deserializeAllReachableTopLevels() + } } // The issue here is that an expect can not trigger its actual deserialization by reachability