Assert that resolve is not performed in dispatch thread
This commit is contained in:
@@ -19,6 +19,7 @@ package org.jetbrains.jet.plugin.project;
|
|||||||
import com.google.common.base.Predicate;
|
import com.google.common.base.Predicate;
|
||||||
import com.google.common.base.Predicates;
|
import com.google.common.base.Predicates;
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
|
import com.intellij.openapi.application.ex.ApplicationManagerEx;
|
||||||
import com.intellij.openapi.diagnostic.Logger;
|
import com.intellij.openapi.diagnostic.Logger;
|
||||||
import com.intellij.openapi.progress.ProcessCanceledException;
|
import com.intellij.openapi.progress.ProcessCanceledException;
|
||||||
import com.intellij.openapi.project.Project;
|
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.resolve.scopes.WritableScope;
|
||||||
import org.jetbrains.jet.lang.types.lang.JetStandardLibrary;
|
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
|
* @author Pavel Talanov
|
||||||
@@ -98,6 +102,8 @@ public final class AnalyzerFacadeWithCache {
|
|||||||
@Override
|
@Override
|
||||||
public Result<AnalyzeExhaust> compute() {
|
public Result<AnalyzeExhaust> compute() {
|
||||||
try {
|
try {
|
||||||
|
ApplicationManagerEx.getApplicationEx().assertTimeConsuming();
|
||||||
|
|
||||||
// Collect context for headers first
|
// Collect context for headers first
|
||||||
AnalyzeExhaust analyzeExhaustHeaders = analyzeHeadersWithCacheOnFile(file, declarationProvider);
|
AnalyzeExhaust analyzeExhaustHeaders = analyzeHeadersWithCacheOnFile(file, declarationProvider);
|
||||||
|
|
||||||
@@ -189,6 +195,8 @@ public final class AnalyzerFacadeWithCache {
|
|||||||
CachedValuesManager.getManager(file.getProject()).createCachedValue(new CachedValueProvider<ResolveSession>() {
|
CachedValuesManager.getManager(file.getProject()).createCachedValue(new CachedValueProvider<ResolveSession>() {
|
||||||
@Override
|
@Override
|
||||||
public Result<ResolveSession> compute() {
|
public Result<ResolveSession> compute() {
|
||||||
|
ApplicationManagerEx.getApplicationEx().assertTimeConsuming();
|
||||||
|
|
||||||
ModuleDescriptor javaModule = new ModuleDescriptor(Name.special("<java module>"));
|
ModuleDescriptor javaModule = new ModuleDescriptor(Name.special("<java module>"));
|
||||||
|
|
||||||
InjectorForJavaDescriptorResolver injector = new InjectorForJavaDescriptorResolver(
|
InjectorForJavaDescriptorResolver injector = new InjectorForJavaDescriptorResolver(
|
||||||
|
|||||||
@@ -17,13 +17,9 @@
|
|||||||
package org.jetbrains.jet.plugin.project;
|
package org.jetbrains.jet.plugin.project;
|
||||||
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
|
||||||
import org.jetbrains.jet.analyzer.AnalyzeExhaust;
|
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.psi.JetFile;
|
||||||
import org.jetbrains.jet.lang.resolve.BindingContext;
|
|
||||||
import org.jetbrains.jet.lang.resolve.java.JetFilesProvider;
|
import org.jetbrains.jet.lang.resolve.java.JetFilesProvider;
|
||||||
import org.jetbrains.jet.lang.resolve.lazy.ResolveSessionUtils;
|
|
||||||
import org.jetbrains.jet.lang.resolve.lazy.ResolveSession;
|
import org.jetbrains.jet.lang.resolve.lazy.ResolveSession;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -43,12 +39,4 @@ public final class WholeProjectAnalyzerFacade {
|
|||||||
public static ResolveSession getLazyResolveSessionForFile(@NotNull JetFile file) {
|
public static ResolveSession getLazyResolveSessionForFile(@NotNull JetFile file) {
|
||||||
return AnalyzerFacadeWithCache.getLazyResolveSession(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();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user