[Resolve] Make ResolversForModule less static

As consequence, remove IdePlatformKindTooling.resolverForModule, because
it became more than just field, and it duplicates similar API in
IdePlatformKindResolution anyways
This commit is contained in:
Dmitry Savvinov
2019-06-03 10:19:19 +03:00
parent 0f56d243cb
commit b48218e722
18 changed files with 133 additions and 88 deletions
@@ -27,6 +27,7 @@ import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.platform.TargetPlatform
import org.jetbrains.kotlin.platform.jvm.JvmPlatforms
import org.jetbrains.kotlin.psi.KtFile
import org.jetbrains.kotlin.resolve.CompilerEnvironment
import org.jetbrains.kotlin.resolve.PlatformDependentAnalyzerServices
import org.jetbrains.kotlin.resolve.jvm.JvmPlatformParameters
import org.jetbrains.kotlin.resolve.jvm.JvmResolverForModuleFactory
@@ -38,19 +39,20 @@ fun createResolveSessionForFiles(
addBuiltIns: Boolean
): ResolveSession {
val projectContext = ProjectContext(project, "lazy resolve test utils")
val testModule = TestModule(project, addBuiltIns)
val testModule =
TestModule(project, addBuiltIns)
val platformParameters = JvmPlatformParameters(
packagePartProviderFactory = { PackagePartProvider.Empty },
moduleByJavaClass = { testModule }
)
val resolverForProject = ResolverForProjectImpl(
"test",
projectContext, listOf(testModule),
{ ModuleContent(it, syntheticFiles, GlobalSearchScope.allScope(project)) },
invalidateOnOOCB = false,
moduleLanguageSettingsProvider = LanguageSettingsProvider.Default,
resolverForModuleFactoryByPlatform = { JvmResolverForModuleFactory },
platformParameters = { _ ->
JvmPlatformParameters(
packagePartProviderFactory = { PackagePartProvider.Empty },
moduleByJavaClass = { testModule }
)
resolverForModuleFactoryByPlatform = {
JvmResolverForModuleFactory(platformParameters, CompilerEnvironment, JvmPlatforms.defaultJvmPlatform)
}
)
return resolverForProject.resolverForModule(testModule).componentProvider.get<ResolveSession>()
@@ -61,10 +63,11 @@ private class TestModule(val project: Project, val dependsOnBuiltIns: Boolean) :
override fun dependencies() = listOf(this)
override fun dependencyOnBuiltIns() =
if (dependsOnBuiltIns)
ModuleInfo.DependencyOnBuiltIns.LAST
else
ModuleInfo.DependencyOnBuiltIns.NONE
if (dependsOnBuiltIns)
ModuleInfo.DependencyOnBuiltIns.LAST
else
ModuleInfo.DependencyOnBuiltIns.NONE
override val platform: TargetPlatform
get() = JvmPlatforms.unspecifiedJvmPlatform