[IR] Implement checker for friendship of modules in fake override builder
- pass corresponding information to FO builder - implement check - fix KT-47192 and KT-48673
This commit is contained in:
committed by
teamcityserver
parent
ed8e7c754d
commit
e6de812788
@@ -277,6 +277,8 @@ fun loadIr(
|
||||
JsIrLinker.JsFePluginContext(moduleDescriptor, symbolTable, typeTranslator, irBuiltIns)
|
||||
}
|
||||
val moduleFragmentToUniqueName = mutableMapOf<IrModuleFragment, String>()
|
||||
val friendModules =
|
||||
mapOf(psi2IrContext.moduleDescriptor.name.asString() to depsDescriptors.friendDependencies.map { it.library.uniqueName })
|
||||
val irLinker =
|
||||
JsIrLinker(
|
||||
psi2IrContext.moduleDescriptor,
|
||||
@@ -285,7 +287,8 @@ fun loadIr(
|
||||
symbolTable,
|
||||
feContext,
|
||||
null,
|
||||
depsDescriptors.loweredIcData
|
||||
depsDescriptors.loweredIcData,
|
||||
friendModules
|
||||
)
|
||||
val deserializedModuleFragments = sortDependencies(allDependencies, depsDescriptors.descriptors).map { klib ->
|
||||
irLinker.deserializeIrModuleHeader(
|
||||
@@ -345,6 +348,8 @@ fun loadIr(
|
||||
result
|
||||
}
|
||||
|
||||
val friendModules = mapOf(mainModuleLib.uniqueName to depsDescriptors.friendDependencies.map { it.library.uniqueName })
|
||||
|
||||
val irLinker =
|
||||
JsIrLinker(
|
||||
null,
|
||||
@@ -353,7 +358,8 @@ fun loadIr(
|
||||
symbolTable,
|
||||
null,
|
||||
null,
|
||||
loweredIcData
|
||||
loweredIcData,
|
||||
friendModules
|
||||
)
|
||||
|
||||
val moduleFragmentToUniqueName = mutableMapOf<IrModuleFragment, String>()
|
||||
|
||||
+2
-1
@@ -30,9 +30,10 @@ class JsIrLinker(
|
||||
override val translationPluginContext: TranslationPluginContext?,
|
||||
private val icData: ICData? = null,
|
||||
private val loweredIcData: Map<ModuleDescriptor, SerializedIcData> = emptyMap(),
|
||||
friendModules: Map<String, Collection<String>> = emptyMap()
|
||||
) : KotlinIrLinker(currentModule, messageLogger, builtIns, symbolTable, emptyList()) {
|
||||
|
||||
override val fakeOverrideBuilder = FakeOverrideBuilder(this, symbolTable, JsManglerIr, IrTypeSystemContextImpl(builtIns))
|
||||
override val fakeOverrideBuilder = FakeOverrideBuilder(this, symbolTable, JsManglerIr, IrTypeSystemContextImpl(builtIns), friendModules)
|
||||
|
||||
override fun isBuiltInModule(moduleDescriptor: ModuleDescriptor): Boolean =
|
||||
moduleDescriptor === moduleDescriptor.builtIns.builtInsModule
|
||||
|
||||
Reference in New Issue
Block a user