Introduce fallback option to add built-ins in position manager test

In AbstractPositionManagerTest, built-ins could no longer be resolved because
JvmIDEVirtualFileFinder is used in IDE tests (even when the compilation is
called through JvmResolveUtil/GenerationUtils as in compiler tests), which is
not yet able to locate .kotlin_builtins files
This commit is contained in:
Alexander Udalov
2016-10-25 15:38:17 +03:00
parent e0989caf46
commit 7f86ce0a20
4 changed files with 43 additions and 9 deletions
@@ -58,6 +58,8 @@ public class JVMConfigurationKeys {
public static final CompilerConfigurationKey<Boolean> USE_SINGLE_MODULE =
CompilerConfigurationKey.create("combine modules for source files and binary dependencies into a single module");
public static final CompilerConfigurationKey<Boolean> ADD_BUILT_INS_TO_DEPENDENCIES =
CompilerConfigurationKey.create("add built-ins to dependencies");
public static final CompilerConfigurationKey<JvmTarget> JVM_TARGET =
CompilerConfigurationKey.create("JVM bytecode target version");
@@ -60,6 +60,7 @@ import org.jetbrains.kotlin.resolve.lazy.KotlinCodeAnalyzer
import org.jetbrains.kotlin.resolve.lazy.declarations.DeclarationProviderFactory
import org.jetbrains.kotlin.resolve.lazy.declarations.FileBasedDeclarationProviderFactory
import org.jetbrains.kotlin.storage.StorageManager
import org.jetbrains.kotlin.utils.addToStdlib.check
import java.util.*
object TopDownAnalyzerFacadeForJVM {
@@ -131,7 +132,12 @@ object TopDownAnalyzerFacadeForJVM {
moduleClassResolver.compiledCodeResolver = dependenciesContainer.get<JavaDescriptorResolver>()
dependenciesContext.setDependencies(dependenciesContext.module)
dependenciesContext.setDependencies(listOfNotNull(
dependenciesContext.module,
dependenciesContext.module.builtIns.builtInsModule.check {
configuration.getBoolean(JVMConfigurationKeys.ADD_BUILT_INS_TO_DEPENDENCIES)
}
))
dependenciesContext.initializeModuleContents(CompositePackageFragmentProvider(listOf(
moduleClassResolver.compiledCodeResolver.packageFragmentProvider,
dependenciesContainer.get<JvmBuiltInsPackageFragmentProvider>()
@@ -175,7 +181,9 @@ object TopDownAnalyzerFacadeForJVM {
// TODO: remove dependencyModule from friends
module.setDependencies(ModuleDependenciesImpl(
listOfNotNull(module, dependencyModule),
listOfNotNull(module, dependencyModule, module.builtIns.builtInsModule.check {
configuration.getBoolean(JVMConfigurationKeys.ADD_BUILT_INS_TO_DEPENDENCIES)
}),
if (dependencyModule != null) setOf(dependencyModule) else emptySet()
))
module.initialize(CompositePackageFragmentProvider(