[FIR] Refactor deserialized dependency providers and session factories with FirModuleData

This commit is contained in:
Dmitriy Novozhilov
2021-04-30 16:57:46 +03:00
committed by TeamCityServer
parent 24f1f7b7b2
commit 02c58b7a8f
23 changed files with 566 additions and 196 deletions
@@ -9,6 +9,7 @@ import com.intellij.openapi.project.Project
import com.intellij.psi.PsiElementFinder
import com.intellij.psi.search.GlobalSearchScope
import com.intellij.psi.search.ProjectScope
import org.jetbrains.kotlin.ObsoleteTestInfrastructure
import org.jetbrains.kotlin.TestsCompiletimeError
import org.jetbrains.kotlin.analyzer.AnalysisResult
import org.jetbrains.kotlin.asJava.finder.JavaElementFinder
@@ -91,6 +92,7 @@ object GenerationUtils {
return state
}
@OptIn(ObsoleteTestInfrastructure::class)
private fun compileFilesUsingFrontendIR(
project: Project,
files: List<KtFile>,
@@ -7,50 +7,55 @@ package org.jetbrains.kotlin.fir
import com.intellij.openapi.project.Project
import com.intellij.psi.search.GlobalSearchScope
import org.jetbrains.kotlin.ObsoleteTestInfrastructure
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
import org.jetbrains.kotlin.config.LanguageVersionSettingsImpl
import org.jetbrains.kotlin.incremental.components.LookupTracker
import org.jetbrains.kotlin.load.kotlin.PackagePartProvider
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.platform.jvm.JvmPlatforms
import org.jetbrains.kotlin.resolve.jvm.platform.JvmPlatformAnalyzerServices
import java.nio.file.Path
@ObsoleteTestInfrastructure
fun createSessionForTests(
environment: KotlinCoreEnvironment,
sourceScope: GlobalSearchScope,
librariesScope: GlobalSearchScope = GlobalSearchScope.notScope(sourceScope),
moduleName: String = "TestModule",
friendPaths: List<String> = emptyList(),
lookupTracker: LookupTracker? = null
friendsPaths: List<Path> = emptyList(),
): FirSession = createSessionForTests(
environment.project,
sourceScope,
librariesScope,
moduleName,
friendPaths,
lookupTracker,
friendsPaths,
environment::createPackagePartProvider
)
@ObsoleteTestInfrastructure
fun createSessionForTests(
project: Project,
sourceScope: GlobalSearchScope,
librariesScope: GlobalSearchScope,
moduleName: String = "TestModule",
friendPaths: List<String> = emptyList(),
lookupTracker: LookupTracker? = null,
friendsPaths: List<Path> = emptyList(),
getPackagePartProvider: (GlobalSearchScope) -> PackagePartProvider,
getAdditionalModulePackagePartProvider: (GlobalSearchScope) -> PackagePartProvider? = { null }
): FirSession {
return createSessionWithDependencies(
Name.identifier(moduleName),
friendPaths,
outputDirectory = null,
JvmPlatforms.unspecifiedJvmPlatform,
JvmPlatformAnalyzerServices,
externalSessionProvider = null,
project,
languageVersionSettings = LanguageVersionSettingsImpl.DEFAULT,
sourceScope,
librariesScope,
lookupTracker,
lookupTracker = null,
getPackagePartProvider,
getAdditionalModulePackagePartProvider
getProviderAndScopeForIncrementalCompilation = { null },
dependenciesConfigurator = {
friendDependencies(friendsPaths)
}
)
}