From 76eda0095ecf9673a4ba38575265fbe99d4af23c Mon Sep 17 00:00:00 2001 From: Ilya Chernikov Date: Wed, 25 Oct 2023 14:05:57 +0200 Subject: [PATCH] HMPP: Fix isCommon calculation for the K2 HMPP case --- .../kotlin/cli/jvm/compiler/KotlinToJVMBytecodeCompiler.kt | 6 +++++- .../config/src/org/jetbrains/kotlin/config/HmppCliModule.kt | 4 ++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinToJVMBytecodeCompiler.kt b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinToJVMBytecodeCompiler.kt index 8e3e4f4c594..64b3f5b1bf5 100644 --- a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinToJVMBytecodeCompiler.kt +++ b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinToJVMBytecodeCompiler.kt @@ -512,7 +512,11 @@ fun CompilerConfiguration.configureSourceRoots(chunk: List, buildFile: F val commonSources = getBuildFilePaths(buildFile, module.getCommonSourceFiles()).toSet() for (path in getBuildFilePaths(buildFile, module.getSourceFiles())) { - addKotlinSourceRoot(path, isCommon = path in commonSources, hmppCliModuleStructure?.getModuleNameForSource(path)) + addKotlinSourceRoot( + path, + isCommon = hmppCliModuleStructure?.isFromCommonModule(path) ?: (path in commonSources), + hmppCliModuleStructure?.getModuleNameForSource(path) + ) } } diff --git a/compiler/config/src/org/jetbrains/kotlin/config/HmppCliModule.kt b/compiler/config/src/org/jetbrains/kotlin/config/HmppCliModule.kt index 384a0cceadd..4dc6be79386 100644 --- a/compiler/config/src/org/jetbrains/kotlin/config/HmppCliModule.kt +++ b/compiler/config/src/org/jetbrains/kotlin/config/HmppCliModule.kt @@ -23,3 +23,7 @@ class HmppCliModuleStructure( fun HmppCliModuleStructure.getModuleNameForSource(source: String): String? { return modules.firstOrNull { source in it.sources }?.name } + +fun HmppCliModuleStructure.isFromCommonModule(source: String): Boolean { + return modules.indexOfFirst { source in it.sources }.let { it >= 0 && it < modules.size - 1 } +}