From b277f2a7f4ba47db18d0f8a586004a63b1fba2f4 Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Wed, 22 Aug 2012 17:59:41 +0400 Subject: [PATCH] Assert that resolve is not performed in dispatch thread --- .../jet/plugin/project/AnalyzerFacadeWithCache.java | 10 +++++++++- .../plugin/project/WholeProjectAnalyzerFacade.java | 12 ------------ 2 files changed, 9 insertions(+), 13 deletions(-) diff --git a/idea/src/org/jetbrains/jet/plugin/project/AnalyzerFacadeWithCache.java b/idea/src/org/jetbrains/jet/plugin/project/AnalyzerFacadeWithCache.java index 6f394b83cad..e376cd9564f 100644 --- a/idea/src/org/jetbrains/jet/plugin/project/AnalyzerFacadeWithCache.java +++ b/idea/src/org/jetbrains/jet/plugin/project/AnalyzerFacadeWithCache.java @@ -19,6 +19,7 @@ package org.jetbrains.jet.plugin.project; import com.google.common.base.Predicate; import com.google.common.base.Predicates; import com.google.common.collect.Lists; +import com.intellij.openapi.application.ex.ApplicationManagerEx; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.progress.ProcessCanceledException; import com.intellij.openapi.project.Project; @@ -54,7 +55,10 @@ import org.jetbrains.jet.lang.resolve.name.Name; import org.jetbrains.jet.lang.resolve.scopes.WritableScope; import org.jetbrains.jet.lang.types.lang.JetStandardLibrary; -import java.util.*; +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; +import java.util.List; /** * @author Pavel Talanov @@ -98,6 +102,8 @@ public final class AnalyzerFacadeWithCache { @Override public Result compute() { try { + ApplicationManagerEx.getApplicationEx().assertTimeConsuming(); + // Collect context for headers first AnalyzeExhaust analyzeExhaustHeaders = analyzeHeadersWithCacheOnFile(file, declarationProvider); @@ -189,6 +195,8 @@ public final class AnalyzerFacadeWithCache { CachedValuesManager.getManager(file.getProject()).createCachedValue(new CachedValueProvider() { @Override public Result compute() { + ApplicationManagerEx.getApplicationEx().assertTimeConsuming(); + ModuleDescriptor javaModule = new ModuleDescriptor(Name.special("")); InjectorForJavaDescriptorResolver injector = new InjectorForJavaDescriptorResolver( diff --git a/idea/src/org/jetbrains/jet/plugin/project/WholeProjectAnalyzerFacade.java b/idea/src/org/jetbrains/jet/plugin/project/WholeProjectAnalyzerFacade.java index aa28a0aa878..d3db13a8391 100644 --- a/idea/src/org/jetbrains/jet/plugin/project/WholeProjectAnalyzerFacade.java +++ b/idea/src/org/jetbrains/jet/plugin/project/WholeProjectAnalyzerFacade.java @@ -17,13 +17,9 @@ package org.jetbrains.jet.plugin.project; import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.analyzer.AnalyzeExhaust; -import org.jetbrains.jet.lang.psi.JetExpression; import org.jetbrains.jet.lang.psi.JetFile; -import org.jetbrains.jet.lang.resolve.BindingContext; import org.jetbrains.jet.lang.resolve.java.JetFilesProvider; -import org.jetbrains.jet.lang.resolve.lazy.ResolveSessionUtils; import org.jetbrains.jet.lang.resolve.lazy.ResolveSession; /** @@ -43,12 +39,4 @@ public final class WholeProjectAnalyzerFacade { public static ResolveSession getLazyResolveSessionForFile(@NotNull JetFile file) { return AnalyzerFacadeWithCache.getLazyResolveSession(file); } - - @NotNull - public static BindingContext getLazyResolveContext(@NotNull JetFile file, @Nullable JetExpression expression) { - ResolveSession resolveSession = getLazyResolveSessionForFile(file); - return expression != null ? - ResolveSessionUtils.getExpressionBindingContext(resolveSession, expression) : - resolveSession.getBindingContext(); - } }