diff --git a/analysis/analysis-api-standalone/src/org/jetbrains/kotlin/analysis/project/structure/impl/ProjectStructureProviderByCompilerConfiguration.kt b/analysis/analysis-api-standalone/src/org/jetbrains/kotlin/analysis/project/structure/impl/ProjectStructureProviderByCompilerConfiguration.kt index 528d33ba459..6c3fa5dea47 100644 --- a/analysis/analysis-api-standalone/src/org/jetbrains/kotlin/analysis/project/structure/impl/ProjectStructureProviderByCompilerConfiguration.kt +++ b/analysis/analysis-api-standalone/src/org/jetbrains/kotlin/analysis/project/structure/impl/ProjectStructureProviderByCompilerConfiguration.kt @@ -11,39 +11,19 @@ import com.intellij.psi.PsiElement import org.jetbrains.kotlin.analysis.project.structure.KtModule import org.jetbrains.kotlin.analysis.project.structure.ProjectStructureProvider import org.jetbrains.kotlin.config.CompilerConfiguration -import org.jetbrains.kotlin.cli.jvm.config.javaSourceRoots import org.jetbrains.kotlin.psi.KtFile -import java.nio.file.Files -import java.nio.file.Paths internal class ProjectStructureProviderByCompilerConfiguration( - private val compilerConfig: CompilerConfiguration, + compilerConfig: CompilerConfiguration, project: Project, ktFiles: List, jarFileSystem: CoreJarFileSystem, ) : ProjectStructureProvider() { - private val sourceFiles: Set by lazy { - buildSet { - compilerConfig.javaSourceRoots.forEach { srcRoot -> - val path = Paths.get(srcRoot) - if (Files.isDirectory(path)) { - // E.g., project/app/src - Files.walk(path) - .filter(Files::isRegularFile) - .forEach { add(it.toString()) } - } else { - // E.g., project/app/src/some/pkg/main.kt - add(srcRoot) - } - } - } - } - private val sourceModule = KtSourceModuleByCompilerConfiguration(compilerConfig, project, ktFiles, jarFileSystem) override fun getKtModuleForKtElement(element: PsiElement): KtModule { val containingFile = element.containingFile.virtualFile - return if (containingFile.path in sourceFiles) { + return if (containingFile in sourceModule.contentScope) { sourceModule } else { sourceModule.directRegularDependencies.find { libModule -> containingFile in libModule.contentScope }