Minor: extract property in KotlinResolveCache

This commit is contained in:
Pavel V. Talanov
2014-09-15 21:33:24 +04:00
parent 563119ffc7
commit ec02734a30
@@ -73,22 +73,25 @@ public trait CacheExtension<T> {
private class KotlinResolveCache( private class KotlinResolveCache(
val project: Project, val project: Project,
setupProvider: () -> CachedValueProvider.Result<ModuleResolverProvider> computeModuleResolverProvider: () -> CachedValueProvider.Result<ModuleResolverProvider>
) { ) {
private val resolverCache = SynchronizedCachedValue(project, setupProvider, trackValue = false) private val resolverCache = SynchronizedCachedValue(project, computeModuleResolverProvider, trackValue = false)
val moduleResolverProvider: ModuleResolverProvider
get() = resolverCache.getValue()
public fun getLazyResolveSession(element: JetElement): ResolveSessionForBodies { public fun getLazyResolveSession(element: JetElement): ResolveSessionForBodies {
return resolverCache.getValue().resolveSessionForBodiesByModule(element.getModuleInfo()) return moduleResolverProvider.resolveSessionForBodiesByModule(element.getModuleInfo())
} }
public fun <T> get(extension: CacheExtension<T>): T { public fun <T> get(extension: CacheExtension<T>): T {
return extension.getData(resolverCache.getValue()) return extension.getData(moduleResolverProvider)
} }
private val analysisResults = CachedValuesManager.getManager(project).createCachedValue( private val analysisResults = CachedValuesManager.getManager(project).createCachedValue(
{ {
val resolverProvider = resolverCache.getValue() val resolverProvider = moduleResolverProvider
val results = object : SLRUCache<JetFile, PerFileAnalysisCache>(2, 3) { val results = object : SLRUCache<JetFile, PerFileAnalysisCache>(2, 3) {
override fun createValue(file: JetFile?): PerFileAnalysisCache { override fun createValue(file: JetFile?): PerFileAnalysisCache {
return PerFileAnalysisCache(file!!, resolverProvider.resolveSessionForBodiesByModule(file.getModuleInfo())) return PerFileAnalysisCache(file!!, resolverProvider.resolveSessionForBodiesByModule(file.getModuleInfo()))