AA: add support VirtualFile inputs to binary module
^KT-68896 fixed
diff --git a/analysis/analysis-api-fe10/src/org/jetbrains/kotlin/analysis/api/descriptors/components/KaFe10SymbolRelationProvider.kt b/analysis/analysis-api-fe10/src/org/jetbrains/kotlin/analysis/api/descriptors/components/KaFe10SymbolRelationProvider.kt
index 158b7d8..7b32994 100644
--- a/analysis/analysis-api-fe10/src/org/jetbrains/kotlin/analysis/api/descriptors/components/KaFe10SymbolRelationProvider.kt
+++ b/analysis/analysis-api-fe10/src/org/jetbrains/kotlin/analysis/api/descriptors/components/KaFe10SymbolRelationProvider.kt
@@ -6,8 +6,10 @@
package org.jetbrains.kotlin.analysis.api.descriptors.components
import com.intellij.openapi.project.Project
+import com.intellij.openapi.vfs.VirtualFile
import com.intellij.psi.search.GlobalSearchScope
import com.intellij.psi.search.ProjectScope
+import org.jetbrains.kotlin.analysis.api.KaExperimentalApi
import org.jetbrains.kotlin.analysis.api.KaSession
import org.jetbrains.kotlin.analysis.api.components.KaSymbolRelationProvider
import org.jetbrains.kotlin.analysis.api.descriptors.KaFe10Session
@@ -167,6 +169,9 @@
override val librarySources: KaLibrarySourceModule? = null
override val isSdk: Boolean = false
override val binaryRoots: Collection<Path> = listOf(libraryPath)
+
+ @KaExperimentalApi
+ override val binaryVirtualFiles: Collection<VirtualFile> = emptyList()
override val directRegularDependencies: List<KaModule> = emptyList()
override val directDependsOnDependencies: List<KaModule> = emptyList()
override val transitiveDependsOnDependencies: List<KaModule> = emptyList()
diff --git a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/configurators/AnalysisApiBaseTestServiceRegistrar.kt b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/configurators/AnalysisApiBaseTestServiceRegistrar.kt
index a6479df..26f1632 100644
--- a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/configurators/AnalysisApiBaseTestServiceRegistrar.kt
+++ b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/configurators/AnalysisApiBaseTestServiceRegistrar.kt
@@ -124,11 +124,15 @@
testServices.environmentManager.getProjectEnvironment(),
).distinct()
+ val mainBinaryVirtualFiles = mainBinaryModules.flatMap { it.binaryVirtualFiles }.distinct()
+
val sharedBinaryRoots = StandaloneProjectFactory.getVirtualFilesForLibraryRoots(
sharedBinaryDependencies.flatMap { binary -> binary.binaryRoots },
testServices.environmentManager.getProjectEnvironment()
).distinct()
+ val sharedBinaryVirtualFiles = sharedBinaryDependencies.flatMap { it.binaryVirtualFiles }.distinct()
+
project.apply {
registerService(KotlinAnnotationsResolverFactory::class.java, KotlinStandaloneAnnotationsResolverFactory(project, testKtFiles))
@@ -143,8 +147,8 @@
val declarationProviderFactory = KotlinStandaloneDeclarationProviderFactory(
project,
testKtFiles,
- binaryRoots = mainBinaryRoots,
- sharedBinaryRoots = sharedBinaryRoots,
+ binaryRoots = mainBinaryRoots + mainBinaryVirtualFiles,
+ sharedBinaryRoots = sharedBinaryRoots + sharedBinaryVirtualFiles,
skipBuiltins = testServices.moduleStructure.allDirectives.contains(NO_RUNTIME),
shouldBuildStubsForBinaryLibraries = shouldBuildStubsForBinaryLibraries,
)
diff --git a/analysis/analysis-api-standalone/analysis-api-standalone-base/src/org/jetbrains/kotlin/analysis/api/standalone/base/projectStructure/StandaloneProjectFactory.kt b/analysis/analysis-api-standalone/analysis-api-standalone-base/src/org/jetbrains/kotlin/analysis/api/standalone/base/projectStructure/StandaloneProjectFactory.kt
index 879ccf0..0bfc9a7 100644
--- a/analysis/analysis-api-standalone/analysis-api-standalone-base/src/org/jetbrains/kotlin/analysis/api/standalone/base/projectStructure/StandaloneProjectFactory.kt
+++ b/analysis/analysis-api-standalone/analysis-api-standalone-base/src/org/jetbrains/kotlin/analysis/api/standalone/base/projectStructure/StandaloneProjectFactory.kt
@@ -342,10 +342,13 @@
.flatMap { it.getJavaRoots(environment) }
fun createSearchScopeByLibraryRoots(
- roots: Collection<Path>,
+ binaryRoots: Collection<Path>,
+ binaryVirtualFiles: Collection<VirtualFile>,
environment: KotlinCoreProjectEnvironment,
): GlobalSearchScope {
- val virtualFileUrls = getVirtualFileUrlsForLibraryRootsRecursively(roots, environment)
+ val virtualFileUrlsFromBinaryRoots = getVirtualFileUrlsForLibraryRootsRecursively(binaryRoots, environment)
+ val virtualFileUrlsFromBinaryVirtualFiles = getVirtualFileUrlsForLibraryRootsRecursively(binaryVirtualFiles)
+ val virtualFileUrls = virtualFileUrlsFromBinaryRoots + virtualFileUrlsFromBinaryVirtualFiles
return object : GlobalSearchScope(environment.project) {
override fun contains(file: VirtualFile): Boolean = file.url in virtualFileUrls
@@ -370,6 +373,17 @@
}
}
+ @OptIn(KaImplementationDetail::class)
+ private fun getVirtualFileUrlsForLibraryRootsRecursively(
+ binaryVirtualFiles: Collection<VirtualFile>
+ ): Set<String> =
+ buildSet {
+ for (vf in binaryVirtualFiles) {
+ LibraryUtils.getAllVirtualFilesFromRoot(vf, includeRoot = true)
+ .mapTo(this) { it.url }
+ }
+ }
+
fun getVirtualFilesForLibraryRoots(
roots: Collection<Path>,
environment: KotlinCoreProjectEnvironment,
@@ -420,10 +434,12 @@
}
}
+ @OptIn(KaExperimentalApi::class)
private fun KaLibraryModule.getJavaRoots(
environment: KotlinCoreProjectEnvironment,
): List<JavaRoot> {
- return getVirtualFilesForLibraryRoots(binaryRoots, environment).map { root ->
+ val binaryRootsAsVirtualFiles = getVirtualFilesForLibraryRoots(binaryRoots, environment) + binaryVirtualFiles
+ return binaryRootsAsVirtualFiles.map { root ->
JavaRoot(root, JavaRoot.RootType.BINARY)
}
}
diff --git a/analysis/analysis-api-standalone/src/org/jetbrains/kotlin/analysis/project/structure/builder/KaBinaryModuleBuilder.kt b/analysis/analysis-api-standalone/src/org/jetbrains/kotlin/analysis/project/structure/builder/KaBinaryModuleBuilder.kt
index d53fa58..b034ff7 100644
--- a/analysis/analysis-api-standalone/src/org/jetbrains/kotlin/analysis/project/structure/builder/KaBinaryModuleBuilder.kt
+++ b/analysis/analysis-api-standalone/src/org/jetbrains/kotlin/analysis/project/structure/builder/KaBinaryModuleBuilder.kt
@@ -5,11 +5,13 @@
package org.jetbrains.kotlin.analysis.project.structure.builder
+import com.intellij.openapi.vfs.VirtualFile
import java.nio.file.Path
@KtModuleBuilderDsl
public abstract class KtBinaryModuleBuilder : KtModuleBuilder() {
private val binaryRoots: MutableList<Path> = mutableListOf()
+ private val binaryVirtualFiles: MutableList<VirtualFile> = mutableListOf()
/**
* Adds a [root] to the current library.
@@ -36,4 +38,14 @@
}
protected fun getBinaryRoots(): List<Path> = binaryRoots.distinct()
+
+ public fun addBinaryVirtualFile(virtualFile: VirtualFile) {
+ binaryVirtualFiles.add(virtualFile)
+ }
+
+ public fun addBinaryVirtualFiles(virtualFiles: Collection<VirtualFile>) {
+ binaryVirtualFiles.addAll(virtualFiles)
+ }
+
+ protected fun getBinaryVirtualFiles(): List<VirtualFile> = binaryVirtualFiles.distinct()
}
\ No newline at end of file
diff --git a/analysis/analysis-api-standalone/src/org/jetbrains/kotlin/analysis/project/structure/builder/KaLibraryModuleBuilder.kt b/analysis/analysis-api-standalone/src/org/jetbrains/kotlin/analysis/project/structure/builder/KaLibraryModuleBuilder.kt
index 3128be3..dc8ab76 100644
--- a/analysis/analysis-api-standalone/src/org/jetbrains/kotlin/analysis/project/structure/builder/KaLibraryModuleBuilder.kt
+++ b/analysis/analysis-api-standalone/src/org/jetbrains/kotlin/analysis/project/structure/builder/KaLibraryModuleBuilder.kt
@@ -5,6 +5,7 @@
package org.jetbrains.kotlin.analysis.project.structure.builder
+import org.jetbrains.kotlin.analysis.api.KaExperimentalApi
import org.jetbrains.kotlin.analysis.api.standalone.base.projectStructure.StandaloneProjectFactory
import org.jetbrains.kotlin.analysis.api.projectStructure.KaLibraryModule
import org.jetbrains.kotlin.analysis.api.projectStructure.KaLibrarySourceModule
@@ -23,9 +24,12 @@
override fun build(): KaLibraryModule = build(isSdk = false)
+ @OptIn(KaExperimentalApi::class)
protected fun build(isSdk: Boolean): KaLibraryModule {
val binaryRoots = getBinaryRoots()
- val contentScope = StandaloneProjectFactory.createSearchScopeByLibraryRoots(binaryRoots, kotlinCoreProjectEnvironment)
+ val binaryVirtualFiles = getBinaryVirtualFiles()
+ val contentScope =
+ StandaloneProjectFactory.createSearchScopeByLibraryRoots(binaryRoots, binaryVirtualFiles, kotlinCoreProjectEnvironment)
return KaLibraryModuleImpl(
directRegularDependencies,
directDependsOnDependencies,
@@ -34,6 +38,7 @@
platform,
kotlinCoreProjectEnvironment.project,
binaryRoots,
+ binaryVirtualFiles,
libraryName,
librarySources,
isSdk,
diff --git a/analysis/analysis-api-standalone/src/org/jetbrains/kotlin/analysis/project/structure/impl/KaLibraryModuleImpl.kt b/analysis/analysis-api-standalone/src/org/jetbrains/kotlin/analysis/project/structure/impl/KaLibraryModuleImpl.kt
index 3f01881..500d706 100644
--- a/analysis/analysis-api-standalone/src/org/jetbrains/kotlin/analysis/project/structure/impl/KaLibraryModuleImpl.kt
+++ b/analysis/analysis-api-standalone/src/org/jetbrains/kotlin/analysis/project/structure/impl/KaLibraryModuleImpl.kt
@@ -6,7 +6,9 @@
package org.jetbrains.kotlin.analysis.project.structure.impl
import com.intellij.openapi.project.Project
+import com.intellij.openapi.vfs.VirtualFile
import com.intellij.psi.search.GlobalSearchScope
+import org.jetbrains.kotlin.analysis.api.KaExperimentalApi
import org.jetbrains.kotlin.analysis.api.KaPlatformInterface
import org.jetbrains.kotlin.analysis.api.platform.projectStructure.computeTransitiveDependsOnDependencies
import org.jetbrains.kotlin.analysis.api.projectStructure.KaLibraryModule
@@ -15,6 +17,7 @@
import org.jetbrains.kotlin.platform.TargetPlatform
import java.nio.file.Path
+@KaExperimentalApi
internal class KaLibraryModuleImpl(
override val directRegularDependencies: List<KaModule>,
override val directDependsOnDependencies: List<KaModule>,
@@ -23,6 +26,7 @@
override val targetPlatform: TargetPlatform,
override val project: Project,
override val binaryRoots: Collection<Path>,
+ override val binaryVirtualFiles: Collection<VirtualFile>,
override val libraryName: String,
override val librarySources: KaLibrarySourceModule?,
diff --git a/analysis/analysis-api-standalone/tests/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/session/builder/StandaloneSessionBuilderTest.kt b/analysis/analysis-api-standalone/tests/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/session/builder/StandaloneSessionBuilderTest.kt
index 55e9916..0685cde 100644
--- a/analysis/analysis-api-standalone/tests/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/session/builder/StandaloneSessionBuilderTest.kt
+++ b/analysis/analysis-api-standalone/tests/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/session/builder/StandaloneSessionBuilderTest.kt
@@ -19,6 +19,8 @@
import org.jetbrains.kotlin.analysis.api.symbols.KaLocalVariableSymbol
import org.jetbrains.kotlin.analysis.api.symbols.KaNamedFunctionSymbol
import org.jetbrains.kotlin.analysis.api.types.KaClassType
+import org.jetbrains.kotlin.analysis.api.standalone.StandaloneAnalysisAPISession
+import org.jetbrains.kotlin.analysis.api.standalone.base.projectStructure.StandaloneProjectFactory
import org.jetbrains.kotlin.analysis.project.structure.builder.buildKtLibraryModule
import org.jetbrains.kotlin.analysis.project.structure.builder.buildKtSdkModule
import org.jetbrains.kotlin.analysis.project.structure.builder.buildKtSourceModule
@@ -281,6 +283,88 @@
)
}
}
+ checkOtherModuleUsage(session, sourceModule)
+ }
+
+ @Test
+ fun testKotlinBinaryModuleSessionWithVirtualFile() {
+ val root = "otherModuleUsage"
+ lateinit var sourceModule: KaSourceModule
+ val session = buildStandaloneAnalysisAPISession(disposable) {
+ buildKtModuleProvider {
+ platform = JvmPlatforms.defaultJvmPlatform
+ val compiledJar = compileToJar(testDataPath(root).resolve("dependent"))
+ val dep = addModule(
+ buildKtLibraryModule {
+ // addBinaryRoot(compiledJar)
+ // Instead, add [VirtualFile]
+ val virtualFiles =
+ StandaloneProjectFactory.getVirtualFilesForLibraryRoots(listOf(compiledJar), kotlinCoreProjectEnvironment)
+ addBinaryVirtualFiles(virtualFiles)
+ platform = JvmPlatforms.defaultJvmPlatform
+ libraryName = "dependent"
+ }
+ )
+ sourceModule = addModule(
+ buildKtSourceModule {
+ addSourceRoot(testDataPath(root).resolve("main"))
+ addRegularDependency(dep)
+ platform = JvmPlatforms.defaultJvmPlatform
+ moduleName = "main"
+ }
+ )
+ }
+ }
+ checkOtherModuleUsage(session, sourceModule)
+ }
+
+ @Test
+ fun testKotlinSourceAndBinaryModuleSessionWithVirtualFile() {
+ val root = "otherModuleUsage"
+ lateinit var sourceModule: KaSourceModule
+ val session = buildStandaloneAnalysisAPISession(disposable) {
+ buildKtModuleProvider {
+ platform = JvmPlatforms.defaultJvmPlatform
+ val compiledJar = compileToJar(testDataPath(root).resolve("dependent"))
+ val dep = addModule(
+ buildKtLibraryModule {
+ // addBinaryRoot(compiledJar)
+ // Instead, add [VirtualFile]
+ val virtualFiles =
+ StandaloneProjectFactory.getVirtualFilesForLibraryRoots(listOf(compiledJar), kotlinCoreProjectEnvironment)
+ addBinaryVirtualFiles(virtualFiles)
+ platform = JvmPlatforms.defaultJvmPlatform
+ libraryName = "dependent"
+ }
+ )
+ sourceModule = addModule(
+ buildKtSourceModule {
+ // addSourceRoot(testDataPath(root).resolve("main"))
+ // Instead, add [VirtualFile] on-the-fly
+ val virtualFile = createDumbVirtualFile(
+ project,
+ "test.kt",
+ """
+ fun main() {
+ foo()
+ }
+ """.trimIndent()
+ )
+ addSourceVirtualFile(virtualFile)
+ addRegularDependency(dep)
+ platform = JvmPlatforms.defaultJvmPlatform
+ moduleName = "main"
+ }
+ )
+ }
+ }
+ checkOtherModuleUsage(session, sourceModule)
+ }
+
+ private fun checkOtherModuleUsage(
+ session: StandaloneAnalysisAPISession,
+ sourceModule: KaSourceModule,
+ ) {
val ktFile = session.modulesWithFiles.getValue(sourceModule).single() as KtFile
val ktCallExpression = ktFile.findDescendantOfType<KtCallExpression>()!!
ktCallExpression.assertIsCallOf(CallableId(FqName.ROOT, Name.identifier("foo")))
diff --git a/analysis/analysis-api-standalone/tests/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/session/builder/sessionBuilderTestUtils.kt b/analysis/analysis-api-standalone/tests/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/session/builder/sessionBuilderTestUtils.kt
index db677ab..177be9f 100644
--- a/analysis/analysis-api-standalone/tests/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/session/builder/sessionBuilderTestUtils.kt
+++ b/analysis/analysis-api-standalone/tests/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/session/builder/sessionBuilderTestUtils.kt
@@ -59,6 +59,20 @@
return testKlib
}
+internal fun compileToJar(sourceRoot: Path): Path {
+ val ktFiles = Files.walk(sourceRoot).asSequence().filter { it.extension == "kt" }.toList()
+ val testJar = KtTestUtil.tmpDir("testLibrary").resolve("library.jar").toPath()
+
+ val arguments = buildList {
+ ktFiles.mapTo(this) { it.absolutePathString() }
+ add("-d")
+ add(testJar.absolutePathString())
+ }
+ MockLibraryUtil.runJvmCompiler(arguments)
+
+ return testJar
+}
+
internal fun createDumbVirtualFile(
project: Project,
fileName: String,
diff --git a/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/projectStructure/KaModule.kt b/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/projectStructure/KaModule.kt
index f4d634e..c9e8e04 100644
--- a/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/projectStructure/KaModule.kt
+++ b/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/projectStructure/KaModule.kt
@@ -8,6 +8,7 @@
package org.jetbrains.kotlin.analysis.api.projectStructure
import com.intellij.openapi.project.Project
+import com.intellij.openapi.vfs.VirtualFile
import com.intellij.psi.PsiFile
import com.intellij.psi.search.GlobalSearchScope
import org.jetbrains.kotlin.analysis.api.KaExperimentalApi
@@ -141,6 +142,12 @@
public val binaryRoots: Collection<Path>
/**
+ * A list of binary files in [VirtualFile] form if the library module represents a library in in-memory file system.
+ */
+ @KaExperimentalApi
+ public val binaryVirtualFiles: Collection<VirtualFile>
+
+ /**
* A library source, if any. If current module is a binary JAR, then [librarySources] corresponds to the sources JAR.
*/
public val librarySources: KaLibrarySourceModule?
diff --git a/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/projectStructure/KaLibraryModuleImpl.kt b/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/projectStructure/KaLibraryModuleImpl.kt
index eb3204e..cdf8c4e 100644
--- a/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/projectStructure/KaLibraryModuleImpl.kt
+++ b/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/projectStructure/KaLibraryModuleImpl.kt
@@ -6,6 +6,7 @@
package org.jetbrains.kotlin.analysis.test.framework.projectStructure
import com.intellij.openapi.project.Project
+import com.intellij.openapi.vfs.VirtualFile
import com.intellij.psi.search.GlobalSearchScope
import org.jetbrains.kotlin.analysis.api.projectStructure.KaLibraryModule
import org.jetbrains.kotlin.analysis.api.projectStructure.KaLibrarySourceModule
@@ -26,5 +27,7 @@
override val directDependsOnDependencies: MutableList<KaModule> = mutableListOf()
override val directFriendDependencies: MutableList<KaModule> = mutableListOf()
+ override val binaryVirtualFiles: Collection<VirtualFile> = emptyList()
+
override fun toString(): String = libraryName
}
diff --git a/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/projectStructure/KaSourceModuleByCompilerConfiguration.kt b/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/projectStructure/KaSourceModuleByCompilerConfiguration.kt
index 79a888a..68f9dac9 100644
--- a/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/projectStructure/KaSourceModuleByCompilerConfiguration.kt
+++ b/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/projectStructure/KaSourceModuleByCompilerConfiguration.kt
@@ -6,6 +6,7 @@
package org.jetbrains.kotlin.analysis.test.framework.projectStructure
import com.intellij.openapi.project.Project
+import com.intellij.openapi.vfs.VirtualFile
import com.intellij.psi.PsiFile
import com.intellij.psi.search.GlobalSearchScope
import org.jetbrains.kotlin.analysis.api.platform.projectStructure.computeTransitiveDependsOnDependencies
@@ -73,6 +74,7 @@
val jdkHomePaths = StandaloneProjectFactory.getDefaultJdkModulePaths(project, jdkHome.toPath())
val scope = StandaloneProjectFactory.createSearchScopeByLibraryRoots(
jdkHomePaths,
+ emptyList(),
testServices.environmentManager.getProjectEnvironment()
)
@@ -148,6 +150,7 @@
override val libraryName: String get() = testModule.name
override val librarySources: KaLibrarySourceModule? get() = null
override val isSdk: Boolean get() = false
+ override val binaryVirtualFiles: Collection<VirtualFile> = emptyList()
override val contentScope: GlobalSearchScope =
GlobalSearchScope.filesScope(project, psiFiles.map { it.virtualFile })
@@ -174,6 +177,7 @@
) : KaLibraryModule {
override val contentScope: GlobalSearchScope = StandaloneProjectFactory.createSearchScopeByLibraryRoots(
roots,
+ emptyList(),
testServices.environmentManager.getProjectEnvironment(),
)
override val libraryName: String get() = "Test Library $roots"
@@ -184,6 +188,7 @@
override val targetPlatform: TargetPlatform get() = parentModule.targetPlatform
override val binaryRoots: Collection<Path> get() = roots
override val isSdk: Boolean get() = false
+ override val binaryVirtualFiles: Collection<VirtualFile> = emptyList()
override fun equals(other: Any?): Boolean {
if (this === other) return true
diff --git a/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/projectStructure/KtLibraryBinaryTestModuleFactoryBase.kt b/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/projectStructure/KtLibraryBinaryTestModuleFactoryBase.kt
index 1fa92bb..1ec30ad 100644
--- a/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/projectStructure/KtLibraryBinaryTestModuleFactoryBase.kt
+++ b/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/projectStructure/KtLibraryBinaryTestModuleFactoryBase.kt
@@ -38,6 +38,7 @@
testModule.targetPlatform,
StandaloneProjectFactory.createSearchScopeByLibraryRoots(
listOf(binaryRoot),
+ emptyList(),
testServices.environmentManager.getProjectEnvironment(),
),
project,
diff --git a/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/projectStructure/KtLibrarySourceTestModuleFactory.kt b/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/projectStructure/KtLibrarySourceTestModuleFactory.kt
index 8c4723e..7f3ef5e 100644
--- a/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/projectStructure/KtLibrarySourceTestModuleFactory.kt
+++ b/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/projectStructure/KtLibrarySourceTestModuleFactory.kt
@@ -59,6 +59,7 @@
testModule.targetPlatform,
StandaloneProjectFactory.createSearchScopeByLibraryRoots(
listOf(libraryJar),
+ emptyList(),
testServices.environmentManager.getProjectEnvironment(),
),
project,
diff --git a/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/projectStructure/TestModuleStructureFactory.kt b/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/projectStructure/TestModuleStructureFactory.kt
index d6866aa..f0d6c82 100644
--- a/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/projectStructure/TestModuleStructureFactory.kt
+++ b/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/projectStructure/TestModuleStructureFactory.kt
@@ -219,6 +219,7 @@
fun getScopeForLibraryByRoots(roots: Collection<Path>, testServices: TestServices): GlobalSearchScope {
return StandaloneProjectFactory.createSearchScopeByLibraryRoots(
roots,
+ emptyList(),
testServices.environmentManager.getProjectEnvironment()
)
}