[FIR] Move createSessionForTests, createSessionForTests into FirTestSessionFactoryHelper
This commit is contained in:
committed by
Space Team
parent
1deb253bac
commit
a4ad8d59b6
@@ -26,9 +26,9 @@ import org.jetbrains.kotlin.context.withModule
|
|||||||
import org.jetbrains.kotlin.context.withProject
|
import org.jetbrains.kotlin.context.withProject
|
||||||
import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl
|
import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl
|
||||||
import org.jetbrains.kotlin.diagnostics.Severity
|
import org.jetbrains.kotlin.diagnostics.Severity
|
||||||
|
import org.jetbrains.kotlin.fir.FirTestSessionFactoryHelper
|
||||||
import org.jetbrains.kotlin.fir.builder.PsiHandlingMode
|
import org.jetbrains.kotlin.fir.builder.PsiHandlingMode
|
||||||
import org.jetbrains.kotlin.fir.builder.RawFirBuilder
|
import org.jetbrains.kotlin.fir.builder.RawFirBuilder
|
||||||
import org.jetbrains.kotlin.fir.createSessionForTests
|
|
||||||
import org.jetbrains.kotlin.fir.java.FirJavaElementFinder
|
import org.jetbrains.kotlin.fir.java.FirJavaElementFinder
|
||||||
import org.jetbrains.kotlin.fir.resolve.providers.firProvider
|
import org.jetbrains.kotlin.fir.resolve.providers.firProvider
|
||||||
import org.jetbrains.kotlin.fir.resolve.providers.impl.FirProviderImpl
|
import org.jetbrains.kotlin.fir.resolve.providers.impl.FirProviderImpl
|
||||||
@@ -155,7 +155,7 @@ abstract class AbstractSimpleFileBenchmark {
|
|||||||
private fun analyzeGreenFileIr(bh: Blackhole) {
|
private fun analyzeGreenFileIr(bh: Blackhole) {
|
||||||
val scope = GlobalSearchScope.filesScope(env.project, listOf(file.virtualFile))
|
val scope = GlobalSearchScope.filesScope(env.project, listOf(file.virtualFile))
|
||||||
.uniteWith(TopDownAnalyzerFacadeForJVM.AllJavaSourcesInProjectScope(env.project))
|
.uniteWith(TopDownAnalyzerFacadeForJVM.AllJavaSourcesInProjectScope(env.project))
|
||||||
val session = createSessionForTests(env.toAbstractProjectEnvironment(), scope.toAbstractProjectFileSearchScope())
|
val session = FirTestSessionFactoryHelper.createSessionForTests(env.toAbstractProjectEnvironment(), scope.toAbstractProjectFileSearchScope())
|
||||||
val firProvider = session.firProvider as FirProviderImpl
|
val firProvider = session.firProvider as FirProviderImpl
|
||||||
val builder = RawFirBuilder(session, firProvider.kotlinScopeProvider, PsiHandlingMode.COMPILER)
|
val builder = RawFirBuilder(session, firProvider.kotlinScopeProvider, PsiHandlingMode.COMPILER)
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -42,7 +42,7 @@ abstract class AbstractFirLoadCompiledKotlin : AbstractFirLoadBinariesTest() {
|
|||||||
val environment = KotlinCoreEnvironment.createForTests(testRootDisposable, configuration, EnvironmentConfigFiles.JVM_CONFIG_FILES)
|
val environment = KotlinCoreEnvironment.createForTests(testRootDisposable, configuration, EnvironmentConfigFiles.JVM_CONFIG_FILES)
|
||||||
|
|
||||||
prepareProjectExtensions(environment.project)
|
prepareProjectExtensions(environment.project)
|
||||||
val sessionWithDependency = createSessionForTests(environment.toAbstractProjectEnvironment(), AbstractProjectFileSearchScope.EMPTY)
|
val sessionWithDependency = FirTestSessionFactoryHelper.createSessionForTests(environment.toAbstractProjectEnvironment(), AbstractProjectFileSearchScope.EMPTY)
|
||||||
|
|
||||||
val testDataDirectoryPath =
|
val testDataDirectoryPath =
|
||||||
"compiler/fir/analysis-tests/testData/loadCompiledKotlin/" +
|
"compiler/fir/analysis-tests/testData/loadCompiledKotlin/" +
|
||||||
|
|||||||
+1
-1
@@ -22,7 +22,7 @@ class BuiltInsDeserializationForFirTestCase : AbstractFirLoadBinariesTest() {
|
|||||||
@OptIn(ObsoleteTestInfrastructure::class)
|
@OptIn(ObsoleteTestInfrastructure::class)
|
||||||
fun testBuiltInPackagesContent() {
|
fun testBuiltInPackagesContent() {
|
||||||
val moduleDescriptor = BuiltinsTestUtils.compileBuiltinsModule(environment)
|
val moduleDescriptor = BuiltinsTestUtils.compileBuiltinsModule(environment)
|
||||||
val session = createSessionForTests(
|
val session = FirTestSessionFactoryHelper.createSessionForTests(
|
||||||
environment.toAbstractProjectEnvironment(),
|
environment.toAbstractProjectEnvironment(),
|
||||||
GlobalSearchScope.allScope(project).toAbstractProjectFileSearchScope()
|
GlobalSearchScope.allScope(project).toAbstractProjectFileSearchScope()
|
||||||
)
|
)
|
||||||
|
|||||||
+2
-2
@@ -20,7 +20,7 @@ import org.jetbrains.kotlin.ObsoleteTestInfrastructure
|
|||||||
import org.jetbrains.kotlin.asJava.finder.JavaElementFinder
|
import org.jetbrains.kotlin.asJava.finder.JavaElementFinder
|
||||||
import org.jetbrains.kotlin.cli.jvm.compiler.*
|
import org.jetbrains.kotlin.cli.jvm.compiler.*
|
||||||
import org.jetbrains.kotlin.codegen.forTestCompile.ForTestCompileRuntime
|
import org.jetbrains.kotlin.codegen.forTestCompile.ForTestCompileRuntime
|
||||||
import org.jetbrains.kotlin.fir.createSessionForTests
|
import org.jetbrains.kotlin.fir.FirTestSessionFactoryHelper
|
||||||
import org.jetbrains.kotlin.fir.java.declarations.FirJavaClass
|
import org.jetbrains.kotlin.fir.java.declarations.FirJavaClass
|
||||||
import org.jetbrains.kotlin.fir.renderer.FirRenderer
|
import org.jetbrains.kotlin.fir.renderer.FirRenderer
|
||||||
import org.jetbrains.kotlin.fir.resolve.providers.symbolProvider
|
import org.jetbrains.kotlin.fir.resolve.providers.symbolProvider
|
||||||
@@ -132,7 +132,7 @@ abstract class AbstractFirTypeEnhancementTest : KtUsefulTestCase() {
|
|||||||
|
|
||||||
val scope = GlobalSearchScope.filesScope(project, virtualFiles)
|
val scope = GlobalSearchScope.filesScope(project, virtualFiles)
|
||||||
.uniteWith(TopDownAnalyzerFacadeForJVM.AllJavaSourcesInProjectScope(project))
|
.uniteWith(TopDownAnalyzerFacadeForJVM.AllJavaSourcesInProjectScope(project))
|
||||||
val session = createSessionForTests(
|
val session = FirTestSessionFactoryHelper.createSessionForTests(
|
||||||
environment.toAbstractProjectEnvironment(),
|
environment.toAbstractProjectEnvironment(),
|
||||||
scope.toAbstractProjectFileSearchScope()
|
scope.toAbstractProjectFileSearchScope()
|
||||||
)
|
)
|
||||||
|
|||||||
+1
-1
@@ -129,7 +129,7 @@ class FirResolveModularizedTotalKotlinTest : AbstractModularizedTest() {
|
|||||||
val scope = GlobalSearchScope.filesScope(project, ktFiles.map { it.virtualFile })
|
val scope = GlobalSearchScope.filesScope(project, ktFiles.map { it.virtualFile })
|
||||||
.uniteWith(TopDownAnalyzerFacadeForJVM.AllJavaSourcesInProjectScope(project))
|
.uniteWith(TopDownAnalyzerFacadeForJVM.AllJavaSourcesInProjectScope(project))
|
||||||
val librariesScope = ProjectScope.getLibrariesScope(project)
|
val librariesScope = ProjectScope.getLibrariesScope(project)
|
||||||
val session = createSessionForTests(
|
val session = FirTestSessionFactoryHelper.createSessionForTests(
|
||||||
environment.toAbstractProjectEnvironment(),
|
environment.toAbstractProjectEnvironment(),
|
||||||
scope.toAbstractProjectFileSearchScope(),
|
scope.toAbstractProjectFileSearchScope(),
|
||||||
librariesScope.toAbstractProjectFileSearchScope(),
|
librariesScope.toAbstractProjectFileSearchScope(),
|
||||||
|
|||||||
@@ -30,10 +30,10 @@ import org.jetbrains.kotlin.config.CompilerConfiguration
|
|||||||
import org.jetbrains.kotlin.config.JVMConfigurationKeys
|
import org.jetbrains.kotlin.config.JVMConfigurationKeys
|
||||||
import org.jetbrains.kotlin.config.languageVersionSettings
|
import org.jetbrains.kotlin.config.languageVersionSettings
|
||||||
import org.jetbrains.kotlin.fir.FirAnalyzerFacade
|
import org.jetbrains.kotlin.fir.FirAnalyzerFacade
|
||||||
|
import org.jetbrains.kotlin.fir.FirTestSessionFactoryHelper
|
||||||
import org.jetbrains.kotlin.fir.backend.jvm.FirJvmBackendClassResolver
|
import org.jetbrains.kotlin.fir.backend.jvm.FirJvmBackendClassResolver
|
||||||
import org.jetbrains.kotlin.fir.backend.jvm.FirJvmBackendExtension
|
import org.jetbrains.kotlin.fir.backend.jvm.FirJvmBackendExtension
|
||||||
import org.jetbrains.kotlin.fir.backend.jvm.JvmFir2IrExtensions
|
import org.jetbrains.kotlin.fir.backend.jvm.JvmFir2IrExtensions
|
||||||
import org.jetbrains.kotlin.fir.createSessionForTests
|
|
||||||
import org.jetbrains.kotlin.ir.backend.jvm.jvmResolveLibraries
|
import org.jetbrains.kotlin.ir.backend.jvm.jvmResolveLibraries
|
||||||
import org.jetbrains.kotlin.ir.backend.jvm.serialization.JvmIrMangler
|
import org.jetbrains.kotlin.ir.backend.jvm.serialization.JvmIrMangler
|
||||||
import org.jetbrains.kotlin.load.kotlin.PackagePartProvider
|
import org.jetbrains.kotlin.load.kotlin.PackagePartProvider
|
||||||
@@ -105,7 +105,13 @@ object GenerationUtils {
|
|||||||
val scope = GlobalSearchScope.filesScope(project, files.map { it.virtualFile })
|
val scope = GlobalSearchScope.filesScope(project, files.map { it.virtualFile })
|
||||||
.uniteWith(TopDownAnalyzerFacadeForJVM.AllJavaSourcesInProjectScope(project))
|
.uniteWith(TopDownAnalyzerFacadeForJVM.AllJavaSourcesInProjectScope(project))
|
||||||
val librariesScope = ProjectScope.getLibrariesScope(project)
|
val librariesScope = ProjectScope.getLibrariesScope(project)
|
||||||
val session = createSessionForTests(project, scope, librariesScope, "main", getPackagePartProvider = packagePartProvider)
|
val session = FirTestSessionFactoryHelper.createSessionForTests(
|
||||||
|
project,
|
||||||
|
scope,
|
||||||
|
librariesScope,
|
||||||
|
"main",
|
||||||
|
getPackagePartProvider = packagePartProvider
|
||||||
|
)
|
||||||
|
|
||||||
// TODO: add running checkers and check that it's safe to compile
|
// TODO: add running checkers and check that it's safe to compile
|
||||||
val firAnalyzerFacade = FirAnalyzerFacade(
|
val firAnalyzerFacade = FirAnalyzerFacade(
|
||||||
|
|||||||
+86
@@ -0,0 +1,86 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
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.PsiBasedProjectFileSearchScope
|
||||||
|
import org.jetbrains.kotlin.cli.jvm.compiler.VfsBasedProjectEnvironment
|
||||||
|
import org.jetbrains.kotlin.config.LanguageVersionSettings
|
||||||
|
import org.jetbrains.kotlin.config.LanguageVersionSettingsImpl
|
||||||
|
import org.jetbrains.kotlin.fir.session.FirSessionFactoryHelper
|
||||||
|
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
|
||||||
|
import org.jetbrains.kotlin.resolve.jvm.platform.JvmPlatformAnalyzerServices
|
||||||
|
import java.nio.file.Path
|
||||||
|
|
||||||
|
object FirTestSessionFactoryHelper {
|
||||||
|
@ObsoleteTestInfrastructure
|
||||||
|
fun createSessionForTests(
|
||||||
|
projectEnvironment: AbstractProjectEnvironment,
|
||||||
|
sourceScope: AbstractProjectFileSearchScope,
|
||||||
|
librariesScope: AbstractProjectFileSearchScope = !sourceScope,
|
||||||
|
moduleName: String = "TestModule",
|
||||||
|
friendsPaths: List<Path> = emptyList(),
|
||||||
|
languageVersionSettings: LanguageVersionSettings = LanguageVersionSettingsImpl.DEFAULT
|
||||||
|
): FirSession = FirSessionFactoryHelper.createSessionWithDependencies(
|
||||||
|
Name.identifier(moduleName),
|
||||||
|
JvmPlatforms.unspecifiedJvmPlatform,
|
||||||
|
JvmPlatformAnalyzerServices,
|
||||||
|
externalSessionProvider = null,
|
||||||
|
projectEnvironment,
|
||||||
|
languageVersionSettings,
|
||||||
|
sourceScope,
|
||||||
|
librariesScope,
|
||||||
|
lookupTracker = null,
|
||||||
|
enumWhenTracker = null,
|
||||||
|
incrementalCompilationContext = null,
|
||||||
|
extensionRegistrars = emptyList(),
|
||||||
|
needRegisterJavaElementFinder = true,
|
||||||
|
dependenciesConfigurator = {
|
||||||
|
friendDependencies(friendsPaths)
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
@ObsoleteTestInfrastructure
|
||||||
|
fun createSessionForTests(
|
||||||
|
project: Project,
|
||||||
|
sourceScope: GlobalSearchScope,
|
||||||
|
librariesScope: GlobalSearchScope,
|
||||||
|
moduleName: String = "TestModule",
|
||||||
|
friendsPaths: List<Path> = emptyList(),
|
||||||
|
getPackagePartProvider: (GlobalSearchScope) -> PackagePartProvider,
|
||||||
|
): FirSession {
|
||||||
|
return FirSessionFactoryHelper.createSessionWithDependencies(
|
||||||
|
Name.identifier(moduleName),
|
||||||
|
JvmPlatforms.unspecifiedJvmPlatform,
|
||||||
|
JvmPlatformAnalyzerServices,
|
||||||
|
externalSessionProvider = null,
|
||||||
|
VfsBasedProjectEnvironment(
|
||||||
|
project,
|
||||||
|
VirtualFileManager.getInstance().getFileSystem(StandardFileSystems.FILE_PROTOCOL),
|
||||||
|
getPackagePartProvider
|
||||||
|
),
|
||||||
|
languageVersionSettings = LanguageVersionSettingsImpl.DEFAULT,
|
||||||
|
PsiBasedProjectFileSearchScope(sourceScope),
|
||||||
|
PsiBasedProjectFileSearchScope(librariesScope),
|
||||||
|
lookupTracker = null,
|
||||||
|
enumWhenTracker = null,
|
||||||
|
incrementalCompilationContext = null,
|
||||||
|
extensionRegistrars = emptyList(),
|
||||||
|
needRegisterJavaElementFinder = true,
|
||||||
|
dependenciesConfigurator = {
|
||||||
|
friendDependencies(friendsPaths)
|
||||||
|
}
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,85 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
|
||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
|
||||||
*/
|
|
||||||
|
|
||||||
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.PsiBasedProjectFileSearchScope
|
|
||||||
import org.jetbrains.kotlin.cli.jvm.compiler.VfsBasedProjectEnvironment
|
|
||||||
import org.jetbrains.kotlin.config.LanguageVersionSettings
|
|
||||||
import org.jetbrains.kotlin.config.LanguageVersionSettingsImpl
|
|
||||||
import org.jetbrains.kotlin.fir.session.FirSessionFactoryHelper
|
|
||||||
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
|
|
||||||
import org.jetbrains.kotlin.resolve.jvm.platform.JvmPlatformAnalyzerServices
|
|
||||||
import java.nio.file.Path
|
|
||||||
|
|
||||||
@ObsoleteTestInfrastructure
|
|
||||||
fun createSessionForTests(
|
|
||||||
projectEnvironment: AbstractProjectEnvironment,
|
|
||||||
sourceScope: AbstractProjectFileSearchScope,
|
|
||||||
librariesScope: AbstractProjectFileSearchScope = !sourceScope,
|
|
||||||
moduleName: String = "TestModule",
|
|
||||||
friendsPaths: List<Path> = emptyList(),
|
|
||||||
languageVersionSettings: LanguageVersionSettings = LanguageVersionSettingsImpl.DEFAULT
|
|
||||||
): FirSession = FirSessionFactoryHelper.createSessionWithDependencies(
|
|
||||||
Name.identifier(moduleName),
|
|
||||||
JvmPlatforms.unspecifiedJvmPlatform,
|
|
||||||
JvmPlatformAnalyzerServices,
|
|
||||||
externalSessionProvider = null,
|
|
||||||
projectEnvironment,
|
|
||||||
languageVersionSettings,
|
|
||||||
sourceScope,
|
|
||||||
librariesScope,
|
|
||||||
lookupTracker = null,
|
|
||||||
enumWhenTracker = null,
|
|
||||||
incrementalCompilationContext = null,
|
|
||||||
extensionRegistrars = emptyList(),
|
|
||||||
needRegisterJavaElementFinder = true,
|
|
||||||
dependenciesConfigurator = {
|
|
||||||
friendDependencies(friendsPaths)
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
@ObsoleteTestInfrastructure
|
|
||||||
fun createSessionForTests(
|
|
||||||
project: Project,
|
|
||||||
sourceScope: GlobalSearchScope,
|
|
||||||
librariesScope: GlobalSearchScope,
|
|
||||||
moduleName: String = "TestModule",
|
|
||||||
friendsPaths: List<Path> = emptyList(),
|
|
||||||
getPackagePartProvider: (GlobalSearchScope) -> PackagePartProvider,
|
|
||||||
): FirSession {
|
|
||||||
return FirSessionFactoryHelper.createSessionWithDependencies(
|
|
||||||
Name.identifier(moduleName),
|
|
||||||
JvmPlatforms.unspecifiedJvmPlatform,
|
|
||||||
JvmPlatformAnalyzerServices,
|
|
||||||
externalSessionProvider = null,
|
|
||||||
VfsBasedProjectEnvironment(
|
|
||||||
project,
|
|
||||||
VirtualFileManager.getInstance().getFileSystem(StandardFileSystems.FILE_PROTOCOL),
|
|
||||||
getPackagePartProvider
|
|
||||||
),
|
|
||||||
languageVersionSettings = LanguageVersionSettingsImpl.DEFAULT,
|
|
||||||
PsiBasedProjectFileSearchScope(sourceScope),
|
|
||||||
PsiBasedProjectFileSearchScope(librariesScope),
|
|
||||||
lookupTracker = null,
|
|
||||||
enumWhenTracker = null,
|
|
||||||
incrementalCompilationContext = null,
|
|
||||||
extensionRegistrars = emptyList(),
|
|
||||||
needRegisterJavaElementFinder = true,
|
|
||||||
dependenciesConfigurator = {
|
|
||||||
friendDependencies(friendsPaths)
|
|
||||||
}
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user