Make invalidateOnOOCB explicit in ResolverForProjectImpl and remove usage in tests

This commit is contained in:
Nikolay Krasko
2019-05-31 16:21:57 +03:00
parent b32b362810
commit 12bb1a5bd1
4 changed files with 33 additions and 22 deletions
@@ -17,21 +17,19 @@
package org.jetbrains.kotlin.resolve.lazy
import com.intellij.openapi.project.Project
import com.intellij.openapi.util.ModificationTracker
import com.intellij.psi.search.GlobalSearchScope
import org.jetbrains.kotlin.analyzer.LanguageSettingsProvider
import org.jetbrains.kotlin.analyzer.ModuleContent
import org.jetbrains.kotlin.analyzer.ModuleInfo
import org.jetbrains.kotlin.analyzer.ResolverForProjectImpl
import org.jetbrains.kotlin.analyzer.*
import org.jetbrains.kotlin.container.get
import org.jetbrains.kotlin.context.ProjectContext
import org.jetbrains.kotlin.load.kotlin.PackagePartProvider
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.psi.KtFile
import org.jetbrains.kotlin.resolve.PlatformDependentAnalyzerServices
import org.jetbrains.kotlin.platform.TargetPlatform
import org.jetbrains.kotlin.platform.jvm.JvmPlatforms
import org.jetbrains.kotlin.resolve.jvm.JvmResolverForModuleFactory
import org.jetbrains.kotlin.psi.KtFile
import org.jetbrains.kotlin.resolve.PlatformDependentAnalyzerServices
import org.jetbrains.kotlin.resolve.jvm.JvmPlatformParameters
import org.jetbrains.kotlin.resolve.jvm.JvmResolverForModuleFactory
import org.jetbrains.kotlin.resolve.jvm.platform.JvmPlatformAnalyzerServices
fun createResolveSessionForFiles(
@@ -40,11 +38,12 @@ fun createResolveSessionForFiles(
addBuiltIns: Boolean
): ResolveSession {
val projectContext = ProjectContext(project, "lazy resolve test utils")
val testModule = TestModule(addBuiltIns)
val testModule = TestModule(project, addBuiltIns)
val resolverForProject = ResolverForProjectImpl(
"test",
projectContext, listOf(testModule),
{ ModuleContent(it, syntheticFiles, GlobalSearchScope.allScope(project)) },
invalidateOnOOCB = false,
moduleLanguageSettingsProvider = LanguageSettingsProvider.Default,
resolverForModuleFactoryByPlatform = { JvmResolverForModuleFactory },
platformParameters = { _ ->
@@ -57,18 +56,22 @@ fun createResolveSessionForFiles(
return resolverForProject.resolverForModule(testModule).componentProvider.get<ResolveSession>()
}
private class TestModule(val dependsOnBuiltIns: Boolean) : ModuleInfo {
private class TestModule(val project: Project, val dependsOnBuiltIns: Boolean) : TrackableModuleInfo {
override val name: Name = Name.special("<Test module for lazy resolve>")
override fun dependencies() = listOf(this)
override fun dependencyOnBuiltIns() =
if (dependsOnBuiltIns)
ModuleInfo.DependencyOnBuiltIns.LAST
else
ModuleInfo.DependencyOnBuiltIns.NONE
override val platform: TargetPlatform
get() = JvmPlatforms.unspecifiedJvmPlatform
override fun createModificationTracker(): ModificationTracker {
return ModificationTracker.NEVER_CHANGED
}
override val analyzerServices: PlatformDependentAnalyzerServices
get() = JvmPlatformAnalyzerServices
}