[IR] Distinguish IrModuleDeserializers with and w/o underlying KLIBs

Fixes #KT-50591
This commit is contained in:
Dmitriy Dolovov
2022-01-10 12:40:15 +03:00
parent 7ff468d9e3
commit cb5a052227
7 changed files with 22 additions and 6 deletions
@@ -610,6 +610,8 @@ internal class KonanIrLinker(
override val moduleFragment: IrModuleFragment = KonanIrModuleFragmentImpl(moduleDescriptor, builtIns)
override val moduleDependencies: Collection<IrModuleDeserializer> = listOfNotNull(forwardDeclarationDeserializer)
override val origin get() = IrModuleOrigin.DESERIALIZED
}
inner class KonanCachedLibraryModuleDeserializer(
@@ -842,6 +844,8 @@ internal class KonanIrLinker(
}
}
}
override val origin get() = IrModuleOrigin.DESERIALIZED
}
private inner class KonanForwardDeclarationModuleDeserializer(moduleDescriptor: ModuleDescriptor) : IrModuleDeserializer(moduleDescriptor, KotlinAbiVersion.CURRENT) {
@@ -892,6 +896,8 @@ internal class KonanIrLinker(
override val moduleFragment: IrModuleFragment = KonanIrModuleFragmentImpl(moduleDescriptor, builtIns)
override val moduleDependencies: Collection<IrModuleDeserializer> = emptyList()
override val origin get() = IrModuleOrigin.SYNTHETIC
}
private val String.isForwardDeclarationModuleName: Boolean get() = this == "<forward declarations>"