K2/Native: fix ModuleDescriptor dependencies in fir2ir phase
Previous implementation set Nth ModuleDescriptor dependencies to the first N modules. This is not always correct: for example, when producing a metadata klib (-Xmetadata-klib) for HMPP, metadata dependencies might have inexact or missing depends= in their manifests. This commit sets ModuleDescriptor dependencies to all other deserialized modules. The same approach is used for K1. That way, the implementation is more reliable. ^KT-56071
This commit is contained in:
committed by
Space Team
parent
f6fa78b653
commit
f3c29e1707
+5
-1
@@ -61,7 +61,6 @@ internal fun PhaseContext.fir2Ir(
|
||||
lookupTracker = LookupTracker.DO_NOTHING
|
||||
)
|
||||
dependencies += moduleDescriptor
|
||||
moduleDescriptor.setDependencies(ArrayList(dependencies))
|
||||
|
||||
val isBuiltIns = moduleDescriptor.isNativeStdlib()
|
||||
if (isBuiltIns) builtInsModule = moduleDescriptor.builtIns
|
||||
@@ -69,6 +68,11 @@ internal fun PhaseContext.fir2Ir(
|
||||
moduleDescriptor
|
||||
}
|
||||
|
||||
librariesDescriptors.forEach { moduleDescriptor ->
|
||||
// Yes, just to all of them.
|
||||
moduleDescriptor.setDependencies(ArrayList(dependencies))
|
||||
}
|
||||
|
||||
val fir2irResult = Fir2IrConverter.createModuleFragmentWithSignaturesIfNeeded(
|
||||
input.session, input.scopeSession, input.firFiles + commonFirFiles,
|
||||
configuration.languageVersionSettings, signaturer,
|
||||
|
||||
Reference in New Issue
Block a user