diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrModuleDeserializer.kt b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrModuleDeserializer.kt index 62bd310e984..ed0a3aca733 100644 --- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrModuleDeserializer.kt +++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrModuleDeserializer.kt @@ -38,7 +38,7 @@ abstract class IrModuleDeserializer(val moduleDescriptor: ModuleDescriptor) { abstract fun deserializeIrSymbol(idSig: IdSignature, symbolKind: BinarySymbolData.SymbolKind): IrSymbol open fun declareIrSymbol(symbol: IrSymbol) { - assert(symbol.isPublicApi) + assert(symbol.isPublicApi) { "Symbol is not public API: ${symbol.descriptor}" } assert(symbol.descriptor !is WrappedDeclarationDescriptor<*>) deserializeIrSymbol(symbol.signature, symbol.kind()) } @@ -175,6 +175,12 @@ class IrModuleDeserializerWithBuiltIns( return delegate.deserializeIrSymbol(idSig, symbolKind) } + override fun declareIrSymbol(symbol: IrSymbol) { + if (symbol.isPublicApi && checkIsFunctionInterface(symbol.signature)) + resolveFunctionalInterface(symbol.signature, symbol.kind()) + else delegate.declareIrSymbol(symbol) + } + override fun postProcess() { delegate.postProcess() } diff --git a/compiler/ir/serialization.jvm/src/org/jetbrains/kotlin/ir/backend/jvm/serialization/JvmIrLinker.kt b/compiler/ir/serialization.jvm/src/org/jetbrains/kotlin/ir/backend/jvm/serialization/JvmIrLinker.kt index c4af7a5c00c..e3296cf900b 100644 --- a/compiler/ir/serialization.jvm/src/org/jetbrains/kotlin/ir/backend/jvm/serialization/JvmIrLinker.kt +++ b/compiler/ir/serialization.jvm/src/org/jetbrains/kotlin/ir/backend/jvm/serialization/JvmIrLinker.kt @@ -33,7 +33,7 @@ class JvmIrLinker(currentModule: ModuleDescriptor?, logger: LoggingContext, buil private val javaName = Name.identifier("java") override fun isBuiltInModule(moduleDescriptor: ModuleDescriptor): Boolean = - moduleDescriptor.name.asString() == "" + moduleDescriptor.name.asString().startsWith("