[JS IR BE] Support friend modules

This commit is contained in:
Svyatoslav Kuzmich
2019-05-08 17:59:36 +03:00
parent ad02700200
commit f4bb1354c9
6 changed files with 40 additions and 18 deletions
@@ -73,9 +73,10 @@ fun generateKLib(
configuration: CompilerConfiguration,
immediateDependencies: List<KlibModuleRef>,
allDependencies: List<KlibModuleRef>,
friendDependencies: List<KlibModuleRef>,
outputKlibPath: String
): KlibModuleRef {
val depsDescriptors = ModulesStructure(project, files, configuration, immediateDependencies, allDependencies)
val depsDescriptors = ModulesStructure(project, files, configuration, immediateDependencies, allDependencies, friendDependencies)
val psi2IrContext = runAnalysisAndPreparePsi2Ir(depsDescriptors)
@@ -108,9 +109,10 @@ fun loadIr(
files: List<KtFile>,
configuration: CompilerConfiguration,
immediateDependencies: List<KlibModuleRef>,
allDependencies: List<KlibModuleRef>
allDependencies: List<KlibModuleRef>,
friendDependencies: List<KlibModuleRef>
): IrModuleInfo {
val depsDescriptors = ModulesStructure(project, files, configuration, immediateDependencies, allDependencies)
val depsDescriptors = ModulesStructure(project, files, configuration, immediateDependencies, allDependencies, friendDependencies)
val psi2IrContext = runAnalysisAndPreparePsi2Ir(depsDescriptors)
@@ -197,7 +199,8 @@ private class ModulesStructure(
private val files: List<KtFile>,
val compilerConfiguration: CompilerConfiguration,
immediateDependencies: List<KlibModuleRef>,
private val allDependencies: List<KlibModuleRef>
private val allDependencies: List<KlibModuleRef>,
private val friendDependencies: List<KlibModuleRef>
) {
private val deserializedModuleParts: Map<KlibModuleRef, JsKlibMetadataParts> =
allDependencies.associateWith { loadKlibMetadataParts(it) }
@@ -223,7 +226,7 @@ private class ModulesStructure(
project,
compilerConfiguration,
sortedImmediateDependencies.map { getModuleDescriptor(it) },
friendModuleDescriptors = emptyList(),
friendModuleDescriptors = friendDependencies.map { getModuleDescriptor(it) },
thisIsBuiltInsModule = builtInModuleDescriptor == null,
customBuiltInsModule = builtInModuleDescriptor
)
@@ -73,6 +73,7 @@ fun buildKLib(
configuration = buildConfiguration(environment, moduleName),
immediateDependencies = dependencies,
allDependencies = dependencies,
friendDependencies = emptyList(),
outputKlibPath = outputPath
)
}