Abstract FIR cli pipeline from core environment and related entities

This commit is contained in:
Ilya Chernikov
2021-08-03 12:17:22 +02:00
committed by TeamCityServer
parent 40614507d3
commit caa44e413d
21 changed files with 497 additions and 211 deletions
@@ -6,11 +6,16 @@
package org.jetbrains.kotlin.fir
import com.intellij.openapi.project.Project
import com.intellij.openapi.vfs.StandardFileSystems
import com.intellij.openapi.vfs.VirtualFileManager
import com.intellij.psi.search.GlobalSearchScope
import org.jetbrains.kotlin.ObsoleteTestInfrastructure
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
import org.jetbrains.kotlin.cli.jvm.compiler.PsiBasedProjectEnvironment
import org.jetbrains.kotlin.cli.jvm.compiler.PsiBasedProjectFileSearchScope
import org.jetbrains.kotlin.config.LanguageVersionSettingsImpl
import org.jetbrains.kotlin.fir.session.FirSessionFactory
import org.jetbrains.kotlin.fir.session.environment.AbstractProjectEnvironment
import org.jetbrains.kotlin.fir.session.environment.AbstractProjectFileSearchScope
import org.jetbrains.kotlin.load.kotlin.PackagePartProvider
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.platform.jvm.JvmPlatforms
@@ -19,18 +24,25 @@ import java.nio.file.Path
@ObsoleteTestInfrastructure
fun createSessionForTests(
environment: KotlinCoreEnvironment,
sourceScope: GlobalSearchScope,
librariesScope: GlobalSearchScope = GlobalSearchScope.notScope(sourceScope),
projectEnvironment: AbstractProjectEnvironment,
sourceScope: AbstractProjectFileSearchScope,
librariesScope: AbstractProjectFileSearchScope = !sourceScope,
moduleName: String = "TestModule",
friendsPaths: List<Path> = emptyList(),
): FirSession = createSessionForTests(
environment.project,
): FirSession = FirSessionFactory.createSessionWithDependencies(
Name.identifier(moduleName),
JvmPlatforms.unspecifiedJvmPlatform,
JvmPlatformAnalyzerServices,
externalSessionProvider = null,
projectEnvironment,
languageVersionSettings = LanguageVersionSettingsImpl.DEFAULT,
sourceScope,
librariesScope,
moduleName,
friendsPaths,
environment::createPackagePartProvider
lookupTracker = null,
providerAndScopeForIncrementalCompilation = null,
dependenciesConfigurator = {
friendDependencies(friendsPaths)
}
)
@ObsoleteTestInfrastructure
@@ -47,13 +59,12 @@ fun createSessionForTests(
JvmPlatforms.unspecifiedJvmPlatform,
JvmPlatformAnalyzerServices,
externalSessionProvider = null,
project,
PsiBasedProjectEnvironment(project, VirtualFileManager.getInstance().getFileSystem(StandardFileSystems.FILE_PROTOCOL), getPackagePartProvider),
languageVersionSettings = LanguageVersionSettingsImpl.DEFAULT,
sourceScope,
librariesScope,
PsiBasedProjectFileSearchScope(sourceScope),
PsiBasedProjectFileSearchScope(librariesScope),
lookupTracker = null,
providerAndScopeForIncrementalCompilation = null,
getPackagePartProvider,
dependenciesConfigurator = {
friendDependencies(friendsPaths)
}