[Tests] Fix stdlib in common diagnostic tests modules
This commit is contained in:
committed by
Space Team
parent
09474758ab
commit
e93628d0e6
+2
-3
@@ -65,7 +65,6 @@ import org.jetbrains.kotlin.resolve.TopDownAnalysisMode
|
|||||||
import org.jetbrains.kotlin.resolve.jvm.JavaDescriptorResolver
|
import org.jetbrains.kotlin.resolve.jvm.JavaDescriptorResolver
|
||||||
import org.jetbrains.kotlin.resolve.lazy.KotlinCodeAnalyzer
|
import org.jetbrains.kotlin.resolve.lazy.KotlinCodeAnalyzer
|
||||||
import org.jetbrains.kotlin.resolve.lazy.declarations.FileBasedDeclarationProviderFactory
|
import org.jetbrains.kotlin.resolve.lazy.declarations.FileBasedDeclarationProviderFactory
|
||||||
import org.jetbrains.kotlin.serialization.deserialization.MetadataPartProvider
|
|
||||||
import org.jetbrains.kotlin.storage.LockBasedStorageManager
|
import org.jetbrains.kotlin.storage.LockBasedStorageManager
|
||||||
import org.jetbrains.kotlin.storage.StorageManager
|
import org.jetbrains.kotlin.storage.StorageManager
|
||||||
import org.jetbrains.kotlin.test.directives.ConfigurationDirectives
|
import org.jetbrains.kotlin.test.directives.ConfigurationDirectives
|
||||||
@@ -426,8 +425,8 @@ class ClassicFrontendFacade(
|
|||||||
compilerEnvironment,
|
compilerEnvironment,
|
||||||
dependenciesContainer = CommonDependenciesContainerImpl(moduleDescriptor)
|
dependenciesContainer = CommonDependenciesContainerImpl(moduleDescriptor)
|
||||||
) {
|
) {
|
||||||
// TODO
|
val factory = testServices.compilerConfigurationProvider.getPackagePartProviderFactory(module)
|
||||||
MetadataPartProvider.Empty
|
factory(it.moduleContentScope)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+45
-21
@@ -17,19 +17,19 @@ import org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM
|
|||||||
import org.jetbrains.kotlin.cli.jvm.compiler.VfsBasedProjectEnvironment
|
import org.jetbrains.kotlin.cli.jvm.compiler.VfsBasedProjectEnvironment
|
||||||
import org.jetbrains.kotlin.cli.jvm.config.jvmClasspathRoots
|
import org.jetbrains.kotlin.cli.jvm.config.jvmClasspathRoots
|
||||||
import org.jetbrains.kotlin.cli.jvm.config.jvmModularRoots
|
import org.jetbrains.kotlin.cli.jvm.config.jvmModularRoots
|
||||||
import org.jetbrains.kotlin.config.CompilerConfiguration
|
import org.jetbrains.kotlin.config.*
|
||||||
import org.jetbrains.kotlin.config.JVMConfigurationKeys
|
|
||||||
import org.jetbrains.kotlin.config.LanguageFeature
|
|
||||||
import org.jetbrains.kotlin.container.topologicalSort
|
import org.jetbrains.kotlin.container.topologicalSort
|
||||||
import org.jetbrains.kotlin.fir.*
|
import org.jetbrains.kotlin.fir.*
|
||||||
import org.jetbrains.kotlin.fir.checkers.registerExtendedCommonCheckers
|
import org.jetbrains.kotlin.fir.checkers.registerExtendedCommonCheckers
|
||||||
import org.jetbrains.kotlin.fir.deserialization.ModuleDataProvider
|
import org.jetbrains.kotlin.fir.deserialization.ModuleDataProvider
|
||||||
import org.jetbrains.kotlin.fir.extensions.FirExtensionRegistrar
|
import org.jetbrains.kotlin.fir.extensions.FirExtensionRegistrar
|
||||||
import org.jetbrains.kotlin.fir.java.FirProjectSessionProvider
|
import org.jetbrains.kotlin.fir.java.FirProjectSessionProvider
|
||||||
|
import org.jetbrains.kotlin.fir.session.FirCommonSessionFactory
|
||||||
import org.jetbrains.kotlin.fir.session.FirJvmSessionFactory
|
import org.jetbrains.kotlin.fir.session.FirJvmSessionFactory
|
||||||
import org.jetbrains.kotlin.fir.session.FirNativeSessionFactory
|
import org.jetbrains.kotlin.fir.session.FirNativeSessionFactory
|
||||||
import org.jetbrains.kotlin.fir.session.FirSessionConfigurator
|
import org.jetbrains.kotlin.fir.session.FirSessionConfigurator
|
||||||
import org.jetbrains.kotlin.fir.session.environment.AbstractProjectEnvironment
|
import org.jetbrains.kotlin.fir.session.environment.AbstractProjectEnvironment
|
||||||
|
import org.jetbrains.kotlin.load.kotlin.PackageAndMetadataPartProvider
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.platform.TargetPlatform
|
import org.jetbrains.kotlin.platform.TargetPlatform
|
||||||
import org.jetbrains.kotlin.platform.isCommon
|
import org.jetbrains.kotlin.platform.isCommon
|
||||||
@@ -191,9 +191,9 @@ open class FirFrontendFacade(
|
|||||||
val compilerConfigurationProvider = testServices.compilerConfigurationProvider
|
val compilerConfigurationProvider = testServices.compilerConfigurationProvider
|
||||||
val projectEnvironment: AbstractProjectEnvironment?
|
val projectEnvironment: AbstractProjectEnvironment?
|
||||||
val languageVersionSettings = module.languageVersionSettings
|
val languageVersionSettings = module.languageVersionSettings
|
||||||
|
val isCommon = module.targetPlatform.isCommon()
|
||||||
when {
|
when {
|
||||||
// TODO: use common session for common target platform when it's implemented
|
isCommon || module.targetPlatform.isJvm() -> {
|
||||||
module.targetPlatform.isCommon() || module.targetPlatform.isJvm() -> {
|
|
||||||
val packagePartProviderFactory = compilerConfigurationProvider.getPackagePartProviderFactory(module)
|
val packagePartProviderFactory = compilerConfigurationProvider.getPackagePartProviderFactory(module)
|
||||||
projectEnvironment = VfsBasedProjectEnvironment(
|
projectEnvironment = VfsBasedProjectEnvironment(
|
||||||
project, VirtualFileManager.getInstance().getFileSystem(StandardFileSystems.FILE_PROTOCOL),
|
project, VirtualFileManager.getInstance().getFileSystem(StandardFileSystems.FILE_PROTOCOL),
|
||||||
@@ -201,17 +201,32 @@ open class FirFrontendFacade(
|
|||||||
val projectFileSearchScope = PsiBasedProjectFileSearchScope(ProjectScope.getLibrariesScope(project))
|
val projectFileSearchScope = PsiBasedProjectFileSearchScope(ProjectScope.getLibrariesScope(project))
|
||||||
val packagePartProvider = projectEnvironment.getPackagePartProvider(projectFileSearchScope)
|
val packagePartProvider = projectEnvironment.getPackagePartProvider(projectFileSearchScope)
|
||||||
|
|
||||||
FirJvmSessionFactory.createLibrarySession(
|
if (isCommon) {
|
||||||
moduleName,
|
FirCommonSessionFactory.createLibrarySession(
|
||||||
sessionProvider,
|
mainModuleName = moduleName,
|
||||||
moduleDataProvider,
|
sessionProvider = sessionProvider,
|
||||||
projectEnvironment,
|
moduleDataProvider = moduleDataProvider,
|
||||||
extensionRegistrars,
|
projectEnvironment = projectEnvironment,
|
||||||
projectFileSearchScope,
|
extensionRegistrars = extensionRegistrars,
|
||||||
packagePartProvider,
|
librariesScope = projectFileSearchScope,
|
||||||
languageVersionSettings,
|
resolvedKLibs = emptyList(),
|
||||||
registerExtraComponents = ::registerExtraComponents,
|
packageAndMetadataPartProvider = packagePartProvider as PackageAndMetadataPartProvider,
|
||||||
)
|
languageVersionSettings = languageVersionSettings,
|
||||||
|
registerExtraComponents = ::registerExtraComponents
|
||||||
|
)
|
||||||
|
} else {
|
||||||
|
FirJvmSessionFactory.createLibrarySession(
|
||||||
|
moduleName,
|
||||||
|
sessionProvider,
|
||||||
|
moduleDataProvider,
|
||||||
|
projectEnvironment,
|
||||||
|
extensionRegistrars,
|
||||||
|
projectFileSearchScope,
|
||||||
|
packagePartProvider,
|
||||||
|
languageVersionSettings,
|
||||||
|
registerExtraComponents = ::registerExtraComponents,
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
module.targetPlatform.isJs() -> {
|
module.targetPlatform.isJs() -> {
|
||||||
projectEnvironment = null
|
projectEnvironment = null
|
||||||
@@ -318,8 +333,19 @@ open class FirFrontendFacade(
|
|||||||
): FirSession {
|
): FirSession {
|
||||||
val languageVersionSettings = module.languageVersionSettings
|
val languageVersionSettings = module.languageVersionSettings
|
||||||
return when {
|
return when {
|
||||||
// TODO: use common session for common target platform when it's implemented
|
targetPlatform.isCommon() -> {
|
||||||
targetPlatform.isCommon() || targetPlatform.isJvm() -> {
|
FirCommonSessionFactory.createModuleBasedSession(
|
||||||
|
moduleData = moduleData,
|
||||||
|
sessionProvider = sessionProvider,
|
||||||
|
projectEnvironment = projectEnvironment!!,
|
||||||
|
incrementalCompilationContext = null,
|
||||||
|
extensionRegistrars = extensionRegistrars,
|
||||||
|
languageVersionSettings = languageVersionSettings,
|
||||||
|
registerExtraComponents = ::registerExtraComponents,
|
||||||
|
init = sessionConfigurator,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
targetPlatform.isJvm() -> {
|
||||||
FirJvmSessionFactory.createModuleBasedSession(
|
FirJvmSessionFactory.createModuleBasedSession(
|
||||||
moduleData,
|
moduleData,
|
||||||
sessionProvider,
|
sessionProvider,
|
||||||
@@ -328,11 +354,9 @@ open class FirFrontendFacade(
|
|||||||
incrementalCompilationContext = null,
|
incrementalCompilationContext = null,
|
||||||
extensionRegistrars,
|
extensionRegistrars,
|
||||||
languageVersionSettings,
|
languageVersionSettings,
|
||||||
lookupTracker = null,
|
|
||||||
enumWhenTracker = null,
|
|
||||||
needRegisterJavaElementFinder = true,
|
needRegisterJavaElementFinder = true,
|
||||||
registerExtraComponents = ::registerExtraComponents,
|
registerExtraComponents = ::registerExtraComponents,
|
||||||
sessionConfigurator,
|
init = sessionConfigurator,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
targetPlatform.isJs() -> {
|
targetPlatform.isJs() -> {
|
||||||
|
|||||||
+14
@@ -5,12 +5,17 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.test.services.configuration
|
package org.jetbrains.kotlin.test.services.configuration
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys
|
||||||
|
import org.jetbrains.kotlin.cli.jvm.config.JvmClasspathRoot
|
||||||
|
import org.jetbrains.kotlin.codegen.forTestCompile.ForTestCompileRuntime
|
||||||
import org.jetbrains.kotlin.config.AnalysisFlag
|
import org.jetbrains.kotlin.config.AnalysisFlag
|
||||||
import org.jetbrains.kotlin.config.AnalysisFlags.allowFullyQualifiedNameInKClass
|
import org.jetbrains.kotlin.config.AnalysisFlags.allowFullyQualifiedNameInKClass
|
||||||
import org.jetbrains.kotlin.config.CompilerConfiguration
|
import org.jetbrains.kotlin.config.CompilerConfiguration
|
||||||
import org.jetbrains.kotlin.config.CompilerConfigurationKey
|
import org.jetbrains.kotlin.config.CompilerConfigurationKey
|
||||||
import org.jetbrains.kotlin.config.LanguageVersion
|
import org.jetbrains.kotlin.config.LanguageVersion
|
||||||
|
import org.jetbrains.kotlin.platform.CommonPlatforms
|
||||||
import org.jetbrains.kotlin.test.directives.ConfigurationDirectives
|
import org.jetbrains.kotlin.test.directives.ConfigurationDirectives
|
||||||
|
import org.jetbrains.kotlin.test.directives.ConfigurationDirectives.WITH_STDLIB
|
||||||
import org.jetbrains.kotlin.test.directives.model.DirectivesContainer
|
import org.jetbrains.kotlin.test.directives.model.DirectivesContainer
|
||||||
import org.jetbrains.kotlin.test.directives.model.RegisteredDirectives
|
import org.jetbrains.kotlin.test.directives.model.RegisteredDirectives
|
||||||
import org.jetbrains.kotlin.test.model.TestModule
|
import org.jetbrains.kotlin.test.model.TestModule
|
||||||
@@ -37,5 +42,14 @@ class CommonEnvironmentConfigurator(testServices: TestServices) : EnvironmentCon
|
|||||||
@Suppress("UNCHECKED_CAST")
|
@Suppress("UNCHECKED_CAST")
|
||||||
configuration.put(key as CompilerConfigurationKey<Any>, value)
|
configuration.put(key as CompilerConfigurationKey<Any>, value)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (module.targetPlatform in CommonPlatforms.allDefaultTargetPlatforms) {
|
||||||
|
if (WITH_STDLIB in module.directives) {
|
||||||
|
configuration.add(
|
||||||
|
CLIConfigurationKeys.CONTENT_ROOTS,
|
||||||
|
JvmClasspathRoot(ForTestCompileRuntime.stdlibCommonForTests())
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user