Fixed ISE on attempt to build light class for alien file.

This commit is contained in:
Evgeny Gerashchenko
2013-07-24 19:12:51 -07:00
parent 81d33b78b7
commit f06111a608
3 changed files with 8 additions and 2 deletions
@@ -360,7 +360,9 @@ public class JetLineMarkerProvider implements LineMarkerProvider {
@Override @Override
public void collectSlowLineMarkers(@NotNull List<PsiElement> elements, @NotNull Collection<LineMarkerInfo> result) { public void collectSlowLineMarkers(@NotNull List<PsiElement> elements, @NotNull Collection<LineMarkerInfo> result) {
if (elements.isEmpty() || DumbService.getInstance(elements.get(0).getProject()).isDumb()) { if (elements.isEmpty() ||
DumbService.getInstance(elements.get(0).getProject()).isDumb() ||
!JetPsiChecker.isInSourceContent(elements.get(0))) {
return; return;
} }
@@ -276,7 +276,7 @@ public class JetPsiChecker implements Annotator {
return annotation; return annotation;
} }
static boolean isInSourceContent(PsiElement element) { public static boolean isInSourceContent(PsiElement element) {
PsiFile containingFile = element.getContainingFile(); PsiFile containingFile = element.getContainingFile();
if (containingFile == null) { if (containingFile == null) {
return false; return false;
@@ -28,6 +28,7 @@ import com.intellij.util.Processor;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.asJava.LightClassUtil; import org.jetbrains.jet.asJava.LightClassUtil;
import org.jetbrains.jet.lang.psi.*; import org.jetbrains.jet.lang.psi.*;
import org.jetbrains.jet.plugin.highlighter.JetPsiChecker;
public class KotlinReferencesSearcher extends QueryExecutorBase<PsiReference, ReferencesSearch.SearchParameters> { public class KotlinReferencesSearcher extends QueryExecutorBase<PsiReference, ReferencesSearch.SearchParameters> {
public static void processJetClassOrObject( public static void processJetClassOrObject(
@@ -50,6 +51,9 @@ public class KotlinReferencesSearcher extends QueryExecutorBase<PsiReference, Re
@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(); PsiElement element = queryParameters.getElementToSearch();
if (!JetPsiChecker.isInSourceContent(element)) {
return;
}
if (element instanceof JetClass) { if (element instanceof JetClass) {
processJetClassOrObject((JetClass) element, queryParameters); processJetClassOrObject((JetClass) element, queryParameters);
} }