Rename: AnalyzeExhaust -> AnalysisResult

This commit is contained in:
Pavel V. Talanov
2014-11-20 17:29:09 +03:00
parent e4670a791d
commit bce399f5fd
33 changed files with 193 additions and 196 deletions
@@ -19,7 +19,7 @@ package org.jetbrains.jet.plugin.caches.resolve
import org.jetbrains.jet.lang.psi.JetElement
import org.jetbrains.jet.lang.psi.JetFile
import com.intellij.openapi.project.Project
import org.jetbrains.jet.analyzer.AnalyzeExhaust
import org.jetbrains.jet.analyzer.AnalysisResult
import com.intellij.openapi.diagnostic.Logger
import com.intellij.util.containers.SLRUCache
import com.intellij.psi.util.PsiModificationTracker
@@ -172,7 +172,7 @@ public class KotlinCacheService(val project: Project) {
return getCacheToAnalyzeFiles(listOf(file)).getLazyResolveSession(file)
}
public fun getAnalysisResults(elements: Collection<JetElement>): AnalyzeExhaust {
public fun getAnalysisResults(elements: Collection<JetElement>): AnalysisResult {
val files = elements.map { it.getContainingJetFile() }.toSet()
assertAreInSameModule(files)
@@ -20,7 +20,7 @@ import org.jetbrains.jet.lang.psi.JetElement
import org.jetbrains.jet.lang.psi.JetFile
import com.intellij.psi.util.PsiTreeUtil
import com.intellij.openapi.project.Project
import org.jetbrains.jet.analyzer.AnalyzeExhaust
import org.jetbrains.jet.analyzer.AnalysisResult
import com.intellij.psi.util.CachedValuesManager
import org.jetbrains.jet.lang.diagnostics.DiagnosticUtils
import com.intellij.util.containers.SLRUCache
@@ -100,7 +100,7 @@ private class KotlinResolveCache(
CachedValueProvider.Result(results, PsiModificationTracker.MODIFICATION_COUNT, resolverProvider.exceptionTracker)
}, false)
fun getAnalysisResultsForElements(elements: Collection<JetElement>): AnalyzeExhaust {
fun getAnalysisResultsForElements(elements: Collection<JetElement>): AnalysisResult {
val slruCache = synchronized(analysisResults) {
analysisResults.getValue()!!
}
@@ -113,24 +113,24 @@ private class KotlinResolveCache(
val withError = results.firstOrNull { it.isError() }
val bindingContext = CompositeBindingContext.create(results.map { it.bindingContext })
return if (withError != null)
AnalyzeExhaust.error(bindingContext, withError.error)
AnalysisResult.error(bindingContext, withError.error)
else
//TODO: (module refactoring) several elements are passed here in debugger
AnalyzeExhaust.success(bindingContext, getLazyResolveSession(elements.first()).getModuleDescriptor())
AnalysisResult.success(bindingContext, getLazyResolveSession(elements.first()).getModuleDescriptor())
}
}
private class PerFileAnalysisCache(val file: JetFile, val resolveSession: ResolveSessionForBodies) {
private val cache = HashMap<PsiElement, AnalyzeExhaust>()
private val cache = HashMap<PsiElement, AnalysisResult>()
private fun lookUp(analyzableElement: JetElement): AnalyzeExhaust? {
private fun lookUp(analyzableElement: JetElement): AnalysisResult? {
// Looking for parent elements that are already analyzed
// Also removing all elements whose parents are already analyzed, to guarantee consistency
val descendantsOfCurrent = arrayListOf<PsiElement>()
val toRemove = hashSetOf<PsiElement>()
var current: PsiElement? = analyzableElement
var result: AnalyzeExhaust? = null
var result: AnalysisResult? = null
while (current != null) {
val cached = cache[current]
if (cached != null) {
@@ -148,12 +148,12 @@ private class PerFileAnalysisCache(val file: JetFile, val resolveSession: Resolv
return result
}
fun getAnalysisResults(element: JetElement): AnalyzeExhaust {
fun getAnalysisResults(element: JetElement): AnalysisResult {
assert (element.getContainingJetFile() == file, "Wrong file. Expected $file, but was ${element.getContainingJetFile()}")
val analyzableParent = KotlinResolveDataProvider.findAnalyzableParent(element)
return synchronized(this) { (): AnalyzeExhaust ->
return synchronized(this) { (): AnalysisResult ->
val cached = lookUp(analyzableParent)
if (cached != null) return@synchronized cached
@@ -166,10 +166,10 @@ private class PerFileAnalysisCache(val file: JetFile, val resolveSession: Resolv
}
}
private fun analyze(analyzableElement: JetElement): AnalyzeExhaust {
private fun analyze(analyzableElement: JetElement): AnalysisResult {
val project = analyzableElement.getProject()
if (DumbService.isDumb(project)) {
return AnalyzeExhaust.EMPTY
return AnalysisResult.EMPTY
}
try {
@@ -182,7 +182,7 @@ private class PerFileAnalysisCache(val file: JetFile, val resolveSession: Resolv
DiagnosticUtils.throwIfRunningOnServer(e)
LOG.error(e)
return AnalyzeExhaust.error(BindingContext.EMPTY, e)
return AnalysisResult.error(BindingContext.EMPTY, e)
}
}
}
@@ -222,10 +222,10 @@ private object KotlinResolveDataProvider {
?: element.getContainingJetFile()
}
fun analyze(project: Project, resolveSession: ResolveSessionForBodies, analyzableElement: JetElement): AnalyzeExhaust {
fun analyze(project: Project, resolveSession: ResolveSessionForBodies, analyzableElement: JetElement): AnalysisResult {
try {
if (analyzableElement is JetCodeFragment) {
return AnalyzeExhaust.success(
return AnalysisResult.success(
analyzeExpressionCodeFragment(resolveSession, analyzableElement),
resolveSession.getModuleDescriptor()
)
@@ -259,7 +259,7 @@ private object KotlinResolveDataProvider {
),
listOf(analyzableElement)
)
return AnalyzeExhaust.success(
return AnalysisResult.success(
trace.getBindingContext(),
resolveSession.getModuleDescriptor()
)
@@ -271,7 +271,7 @@ private object KotlinResolveDataProvider {
DiagnosticUtils.throwIfRunningOnServer(e)
LOG.error(e)
return AnalyzeExhaust.error(BindingContext.EMPTY, e)
return AnalysisResult.error(BindingContext.EMPTY, e)
}
}
@@ -18,7 +18,7 @@ package org.jetbrains.jet.plugin.caches.resolve
import org.jetbrains.jet.lang.psi.JetElement
import org.jetbrains.jet.lang.psi.JetFile
import org.jetbrains.jet.analyzer.AnalyzeExhaust
import org.jetbrains.jet.analyzer.AnalysisResult
import org.jetbrains.jet.lang.resolve.BindingContext
import org.jetbrains.jet.lang.psi.JetDeclaration
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor
@@ -28,7 +28,7 @@ public fun JetElement.getLazyResolveSession(): ResolutionFacade {
return KotlinCacheService.getInstance(getProject()).getResolutionFacade(listOf(this))
}
public fun JetElement.getAnalysisResults(vararg extraFiles: JetFile): AnalyzeExhaust {
public fun JetElement.getAnalysisResults(vararg extraFiles: JetFile): AnalysisResult {
return KotlinCacheService.getInstance(getProject()).getAnalysisResults(listOf(this) + extraFiles.toList())
}
@@ -48,8 +48,8 @@ public fun JetElement.getBindingContext(): BindingContext {
return getAnalysisResults().bindingContext
}
public fun getAnalysisResultsForElements(elements: Collection<JetElement>): AnalyzeExhaust {
if (elements.isEmpty()) return AnalyzeExhaust.EMPTY
public fun getAnalysisResultsForElements(elements: Collection<JetElement>): AnalysisResult {
if (elements.isEmpty()) return AnalysisResult.EMPTY
val element = elements.first()
return KotlinCacheService.getInstance(element.getProject()).getAnalysisResults(elements)
}
@@ -35,7 +35,7 @@ import com.intellij.xml.util.XmlStringUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.annotations.TestOnly;
import org.jetbrains.jet.analyzer.AnalyzeExhaust;
import org.jetbrains.jet.analyzer.AnalysisResult;
import org.jetbrains.jet.lang.diagnostics.Diagnostic;
import org.jetbrains.jet.lang.diagnostics.Errors;
import org.jetbrains.jet.lang.diagnostics.Severity;
@@ -101,12 +101,12 @@ public class JetPsiChecker implements Annotator, HighlightRangeExtension {
JetFile file = (JetFile) element.getContainingFile();
AnalyzeExhaust analyzeExhaust = ResolvePackage.getAnalysisResults(file);
if (analyzeExhaust.isError()) {
throw new ProcessCanceledException(analyzeExhaust.getError());
AnalysisResult analysisResult = ResolvePackage.getAnalysisResults(file);
if (analysisResult.isError()) {
throw new ProcessCanceledException(analysisResult.getError());
}
BindingContext bindingContext = analyzeExhaust.getBindingContext();
BindingContext bindingContext = analysisResult.getBindingContext();
for (HighlightingVisitor visitor : getAfterAnalysisVisitor(holder, bindingContext)) {
element.accept(visitor);