Rename: AnalyzeExhaust -> AnalysisResult
This commit is contained in:
+2
-2
@@ -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)
|
||||
|
||||
|
||||
+16
-16
@@ -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);
|
||||
|
||||
@@ -38,7 +38,7 @@ import com.sun.jdi.request.ClassPrepareRequest;
|
||||
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.codegen.AsmUtil;
|
||||
import org.jetbrains.jet.codegen.ClassBuilderFactories;
|
||||
import org.jetbrains.jet.codegen.state.GenerationState;
|
||||
@@ -326,11 +326,11 @@ public class JetPositionManager implements PositionManager {
|
||||
GlobalSearchScope packageFacadeScope = key.second.contentScope();
|
||||
Collection<JetFile> packageFiles = findFilesWithExactPackage(key.first, packageFacadeScope, project);
|
||||
|
||||
AnalyzeExhaust analyzeExhaust = ResolvePackage.getAnalysisResultsForElements(packageFiles);
|
||||
analyzeExhaust.throwIfError();
|
||||
AnalysisResult analysisResult = ResolvePackage.getAnalysisResultsForElements(packageFiles);
|
||||
analysisResult.throwIfError();
|
||||
|
||||
GenerationState state = new GenerationState(project, ClassBuilderFactories.THROW_EXCEPTION,
|
||||
analyzeExhaust.getModuleDescriptor(), analyzeExhaust.getBindingContext(),
|
||||
analysisResult.getModuleDescriptor(), analysisResult.getBindingContext(),
|
||||
new ArrayList<JetFile>(packageFiles)
|
||||
);
|
||||
state.beforeCompile();
|
||||
|
||||
@@ -280,17 +280,17 @@ class KotlinEvaluator(val codeFragment: JetCodeFragment,
|
||||
throw EvaluateExceptionUtil.createEvaluateException(e.getMessage())
|
||||
}
|
||||
|
||||
val analyzeExhaust = this.getAnalysisResults(createFlexibleTypesFile())
|
||||
if (analyzeExhaust.isError()) {
|
||||
throw EvaluateExceptionUtil.createEvaluateException(analyzeExhaust.error)
|
||||
val analysisResult = this.getAnalysisResults(createFlexibleTypesFile())
|
||||
if (analysisResult.isError()) {
|
||||
throw EvaluateExceptionUtil.createEvaluateException(analysisResult.error)
|
||||
}
|
||||
|
||||
val bindingContext = analyzeExhaust.bindingContext
|
||||
val bindingContext = analysisResult.bindingContext
|
||||
bindingContext.getDiagnostics().firstOrNull { it.getSeverity() == Severity.ERROR }?.let {
|
||||
throw EvaluateExceptionUtil.createEvaluateException(DefaultErrorMessages.RENDERER.render(it))
|
||||
}
|
||||
|
||||
analyzeExhaust
|
||||
analysisResult
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,7 +37,7 @@ import com.intellij.util.Alarm;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jet.OutputFile;
|
||||
import org.jetbrains.jet.OutputFileCollection;
|
||||
import org.jetbrains.jet.analyzer.AnalyzeExhaust;
|
||||
import org.jetbrains.jet.analyzer.AnalysisResult;
|
||||
import org.jetbrains.jet.codegen.ClassBuilderFactories;
|
||||
import org.jetbrains.jet.codegen.CompilationErrorHandler;
|
||||
import org.jetbrains.jet.codegen.KotlinCodegenFacade;
|
||||
@@ -107,12 +107,12 @@ public class KotlinBytecodeToolWindow extends JPanel implements Disposable {
|
||||
|
||||
GenerationState state;
|
||||
try {
|
||||
AnalyzeExhaust exhaust = ResolvePackage.getAnalysisResults(jetFile);
|
||||
if (exhaust.isError()) {
|
||||
return printStackTraceToString(exhaust.getError());
|
||||
AnalysisResult result = ResolvePackage.getAnalysisResults(jetFile);
|
||||
if (result.isError()) {
|
||||
return printStackTraceToString(result.getError());
|
||||
}
|
||||
state = new GenerationState(jetFile.getProject(), ClassBuilderFactories.TEST, Progress.DEAF,
|
||||
exhaust.getModuleDescriptor(), exhaust.getBindingContext(),
|
||||
result.getModuleDescriptor(), result.getBindingContext(),
|
||||
Collections.singletonList(jetFile), !enableAssertions.isSelected(), !enableAssertions.isSelected(),
|
||||
GenerationState.GenerateClassFilter.GENERATE_ALL,
|
||||
!enableInline.isSelected(), !enableOptimization.isSelected(), null, null,
|
||||
|
||||
+3
-3
@@ -144,9 +144,9 @@ class CallableBuilder(val config: CallableBuilderConfiguration) {
|
||||
private val typeCandidates = HashMap<TypeInfo, List<TypeCandidate>>();
|
||||
|
||||
{
|
||||
val exhaust = config.currentFile.getAnalysisResults()
|
||||
currentFileContext = exhaust.bindingContext
|
||||
currentFileModule = exhaust.moduleDescriptor
|
||||
val result = config.currentFile.getAnalysisResults()
|
||||
currentFileContext = result.bindingContext
|
||||
currentFileModule = result.moduleDescriptor
|
||||
}
|
||||
|
||||
public var placement: CallablePlacement by Delegates.notNull()
|
||||
|
||||
+3
-3
@@ -66,15 +66,15 @@ object CreateParameterActionFactory: JetSingleIntentionActionFactory() {
|
||||
}
|
||||
|
||||
override fun createAction(diagnostic: Diagnostic): IntentionAction? {
|
||||
val exhaust = (diagnostic.getPsiFile() as? JetFile)?.getAnalysisResults() ?: return null
|
||||
val context = exhaust.bindingContext
|
||||
val result = (diagnostic.getPsiFile() as? JetFile)?.getAnalysisResults() ?: return null
|
||||
val context = result.bindingContext
|
||||
|
||||
val refExpr = QuickFixUtil.getParentElementOfType(diagnostic, javaClass<JetSimpleNameExpression>()) ?: return null
|
||||
if (refExpr.getQualifiedElement() != refExpr) return null
|
||||
|
||||
val varExpected = refExpr.getAssignmentByLHS() != null
|
||||
|
||||
val paramType = refExpr.getExpressionForTypeGuess().guessTypes(context, exhaust.moduleDescriptor).let {
|
||||
val paramType = refExpr.getExpressionForTypeGuess().guessTypes(context, result.moduleDescriptor).let {
|
||||
when (it.size) {
|
||||
0 -> KotlinBuiltIns.getInstance().getAnyType()
|
||||
1 -> it.first()
|
||||
|
||||
@@ -25,7 +25,7 @@ import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jet.ConfigurationKind;
|
||||
import org.jetbrains.jet.JetLiteFixture;
|
||||
import org.jetbrains.jet.JetTestUtils;
|
||||
import org.jetbrains.jet.analyzer.AnalyzeExhaust;
|
||||
import org.jetbrains.jet.analyzer.AnalysisResult;
|
||||
import org.jetbrains.jet.cli.jvm.compiler.JetCoreEnvironment;
|
||||
import org.jetbrains.jet.lang.diagnostics.DiagnosticFactory;
|
||||
import org.jetbrains.jet.lang.diagnostics.Diagnostic;
|
||||
@@ -82,8 +82,8 @@ public abstract class AbstractDiagnosticMessageTest extends JetLiteFixture {
|
||||
MessageType messageType = getMessageTypeDirective(directives);
|
||||
|
||||
JetFile psiFile = createPsiFile(null, fileName, loadFile(fileName));
|
||||
AnalyzeExhaust analyzeExhaust = JvmResolveUtil.analyzeOneFileWithJavaIntegration(psiFile);
|
||||
BindingContext bindingContext = analyzeExhaust.getBindingContext();
|
||||
AnalysisResult analysisResult = JvmResolveUtil.analyzeOneFileWithJavaIntegration(psiFile);
|
||||
BindingContext bindingContext = analysisResult.getBindingContext();
|
||||
|
||||
List<Diagnostic> diagnostics = ContainerUtil.filter(bindingContext.getDiagnostics().all(), new Condition<Diagnostic>() {
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user