Wrap JetLightClass creation in runReadAction

No tests added because runReadAction checks are disabled in tests.

To reproduce the exception, find usages of Any.
This commit is contained in:
Alexander Udalov
2012-09-12 15:10:06 +04:00
parent ccfa5f8c2c
commit 2c17cb7aa7
@@ -35,11 +35,16 @@ import org.jetbrains.jet.lang.psi.JetNamedFunction;
public class KotlinReferencesSearcher extends QueryExecutorBase<PsiReference, ReferencesSearch.SearchParameters> { public class KotlinReferencesSearcher extends QueryExecutorBase<PsiReference, ReferencesSearch.SearchParameters> {
@Override @Override
public void processQuery(@NotNull ReferencesSearch.SearchParameters queryParameters, @NotNull Processor<PsiReference> consumer) { public void processQuery(@NotNull ReferencesSearch.SearchParameters queryParameters, @NotNull Processor<PsiReference> consumer) {
PsiElement element = queryParameters.getElementToSearch(); final PsiElement element = queryParameters.getElementToSearch();
if (element instanceof JetClass) { if (element instanceof JetClass) {
String className = ((JetClass) element).getName(); String className = ((JetClass) element).getName();
if (className != null) { if (className != null) {
JetLightClass lightClass = JetLightClass.wrapDelegate((JetClass) element); JetLightClass lightClass = ApplicationManager.getApplication().runReadAction(new Computable<JetLightClass>() {
@Override
public JetLightClass compute() {
return JetLightClass.wrapDelegate((JetClass) element);
}
});
if (lightClass != null) { if (lightClass != null) {
queryParameters.getOptimizer().searchWord(className, queryParameters.getScope(), true, lightClass); queryParameters.getOptimizer().searchWord(className, queryParameters.getScope(), true, lightClass);
} }