From 0416e0423f39d001c88796f50fff72b98fa54a61 Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Wed, 30 Aug 2023 14:28:42 +0200 Subject: [PATCH] [Analysis API Standalone] deduplicate binary roots for `KtBinaryModuleBuilder` ^KT-60884 --- .../project/structure/builder/KtBinaryModuleBuilder.kt | 4 +++- .../project/structure/builder/KtLibraryModuleBuilder.kt | 1 + .../analysis/project/structure/builder/KtSdkModuleBuilder.kt | 1 + 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/analysis/analysis-api-standalone/src/org/jetbrains/kotlin/analysis/project/structure/builder/KtBinaryModuleBuilder.kt b/analysis/analysis-api-standalone/src/org/jetbrains/kotlin/analysis/project/structure/builder/KtBinaryModuleBuilder.kt index c99460575b4..7d3ac5fd2d7 100644 --- a/analysis/analysis-api-standalone/src/org/jetbrains/kotlin/analysis/project/structure/builder/KtBinaryModuleBuilder.kt +++ b/analysis/analysis-api-standalone/src/org/jetbrains/kotlin/analysis/project/structure/builder/KtBinaryModuleBuilder.kt @@ -9,7 +9,7 @@ import java.nio.file.Path @KtModuleBuilderDsl public abstract class KtBinaryModuleBuilder : KtModuleBuilder() { - protected val binaryRoots: MutableList = mutableListOf() + private val binaryRoots: MutableList = mutableListOf() public fun addBinaryRoot(root: Path) { binaryRoots.add(root) @@ -18,4 +18,6 @@ public abstract class KtBinaryModuleBuilder : KtModuleBuilder() { public fun addBinaryRoots(roots: Collection) { binaryRoots.addAll(roots) } + + protected fun getBinaryRoots(): List = binaryRoots.distinct() } \ No newline at end of file diff --git a/analysis/analysis-api-standalone/src/org/jetbrains/kotlin/analysis/project/structure/builder/KtLibraryModuleBuilder.kt b/analysis/analysis-api-standalone/src/org/jetbrains/kotlin/analysis/project/structure/builder/KtLibraryModuleBuilder.kt index a9c000e7003..5e1ef66c4cc 100644 --- a/analysis/analysis-api-standalone/src/org/jetbrains/kotlin/analysis/project/structure/builder/KtLibraryModuleBuilder.kt +++ b/analysis/analysis-api-standalone/src/org/jetbrains/kotlin/analysis/project/structure/builder/KtLibraryModuleBuilder.kt @@ -22,6 +22,7 @@ public class KtLibraryModuleBuilder( public var librarySources: KtLibrarySourceModule? = null override fun build(): KtLibraryModule { + val binaryRoots = getBinaryRoots() val contentScope = StandaloneProjectFactory.createSearchScopeByLibraryRoots(binaryRoots, kotlinCoreProjectEnvironment) return KtLibraryModuleImpl( directRegularDependencies, diff --git a/analysis/analysis-api-standalone/src/org/jetbrains/kotlin/analysis/project/structure/builder/KtSdkModuleBuilder.kt b/analysis/analysis-api-standalone/src/org/jetbrains/kotlin/analysis/project/structure/builder/KtSdkModuleBuilder.kt index 89664a6561d..dbae0825a81 100644 --- a/analysis/analysis-api-standalone/src/org/jetbrains/kotlin/analysis/project/structure/builder/KtSdkModuleBuilder.kt +++ b/analysis/analysis-api-standalone/src/org/jetbrains/kotlin/analysis/project/structure/builder/KtSdkModuleBuilder.kt @@ -27,6 +27,7 @@ public class KtSdkModuleBuilder( } override fun build(): KtSdkModule { + val binaryRoots = getBinaryRoots() val contentScope = StandaloneProjectFactory.createSearchScopeByLibraryRoots(binaryRoots, kotlinCoreProjectEnvironment) return KtSdkModuleImpl(