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 ee43b327eb5..89664a6561d 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 @@ -5,10 +5,12 @@ package org.jetbrains.kotlin.analysis.project.structure.builder +import org.jetbrains.kotlin.analysis.api.impl.base.util.LibraryUtils import org.jetbrains.kotlin.analysis.api.standalone.base.project.structure.StandaloneProjectFactory import org.jetbrains.kotlin.analysis.project.structure.KtSdkModule import org.jetbrains.kotlin.analysis.project.structure.impl.KtSdkModuleImpl import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreProjectEnvironment +import java.nio.file.Path import kotlin.contracts.ExperimentalContracts import kotlin.contracts.InvocationKind import kotlin.contracts.contract @@ -19,6 +21,11 @@ public class KtSdkModuleBuilder( ) : KtBinaryModuleBuilder() { public lateinit var sdkName: String + public fun addBinaryRootsFromJdkHome(jdkHome: Path, isJre: Boolean) { + val jdkRoots = LibraryUtils.findClassesFromJdkHome(jdkHome, isJre) + addBinaryRoots(jdkRoots) + } + override fun build(): KtSdkModule { val contentScope = StandaloneProjectFactory.createSearchScopeByLibraryRoots(binaryRoots, kotlinCoreProjectEnvironment) diff --git a/analysis/analysis-api-standalone/src/org/jetbrains/kotlin/analysis/project/structure/impl/KtModuleUtils.kt b/analysis/analysis-api-standalone/src/org/jetbrains/kotlin/analysis/project/structure/impl/KtModuleUtils.kt index 316836bdcfe..64ea9e46018 100644 --- a/analysis/analysis-api-standalone/src/org/jetbrains/kotlin/analysis/project/structure/impl/KtModuleUtils.kt +++ b/analysis/analysis-api-standalone/src/org/jetbrains/kotlin/analysis/project/structure/impl/KtModuleUtils.kt @@ -9,8 +9,6 @@ import com.google.common.io.Files.getFileExtension import com.intellij.ide.highlighter.JavaFileType import com.intellij.psi.PsiFileSystemItem import com.intellij.psi.PsiManager -import com.intellij.util.io.URLUtil -import org.jetbrains.kotlin.analysis.api.impl.base.util.LibraryUtils import org.jetbrains.kotlin.analysis.api.standalone.base.project.structure.KtStaticProjectStructureProvider import org.jetbrains.kotlin.analysis.project.structure.builder.* import org.jetbrains.kotlin.analyzer.common.CommonPlatformAnalyzerServices @@ -162,14 +160,10 @@ internal fun buildKtModuleProviderByCompilerConfiguration( } ) compilerConfig.get(JVMConfigurationKeys.JDK_HOME)?.let { jdkHome -> - val jdkHomePath = jdkHome.toPath() - val binaryRoots = LibraryUtils.findClassesFromJdkHome(jdkHomePath).map { - Paths.get(URLUtil.extractPath(it)) - } addRegularDependency( buildKtSdkModule { this.platform = platform - addBinaryRoots(binaryRoots) + addBinaryRootsFromJdkHome(jdkHome.toPath(), isJre = false) sdkName = "JDK for $moduleName" } )