From 6e64727a4150940ddcc031199f376a6b1cb445eb Mon Sep 17 00:00:00 2001 From: anna Date: Mon, 21 Mar 2011 17:56:19 +0100 Subject: [PATCH] do not run local inspection pass over cls (EA-25638 - assert: PsiWalkingState.elementStarted) --- .../HighlightSuppressedWarningsFactory.java | 6 +++++- .../daemon/impl/DaemonCodeAnalyzerImpl.java | 11 +++++++---- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/java/java-impl/src/com/intellij/codeInsight/highlighting/HighlightSuppressedWarningsFactory.java b/java/java-impl/src/com/intellij/codeInsight/highlighting/HighlightSuppressedWarningsFactory.java index 8fb84d5410d3..745387aa546e 100644 --- a/java/java-impl/src/com/intellij/codeInsight/highlighting/HighlightSuppressedWarningsFactory.java +++ b/java/java-impl/src/com/intellij/codeInsight/highlighting/HighlightSuppressedWarningsFactory.java @@ -18,6 +18,7 @@ package com.intellij.codeInsight.highlighting; import com.intellij.codeInsight.TargetElementUtilBase; import com.intellij.openapi.editor.Editor; import com.intellij.openapi.util.Comparing; +import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.PsiAnnotation; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiFile; @@ -33,7 +34,10 @@ public class HighlightSuppressedWarningsFactory implements HighlightUsagesHandle final PsiElement target = file.findElementAt(offset); final PsiAnnotation annotation = PsiTreeUtil.getParentOfType(target, PsiAnnotation.class); if (annotation != null && Comparing.strEqual(SuppressWarnings.class.getName(), annotation.getQualifiedName())) { - return new HighlightSuppressedWarningsHandler(editor, file, annotation, PsiTreeUtil.getParentOfType(target, PsiLiteralExpression.class)); + final VirtualFile virtualFile = file.getVirtualFile(); + if (virtualFile != null && !virtualFile.getFileType().isBinary()) { + return new HighlightSuppressedWarningsHandler(editor, file, annotation, PsiTreeUtil.getParentOfType(target, PsiLiteralExpression.class)); + } } return null; } diff --git a/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/DaemonCodeAnalyzerImpl.java b/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/DaemonCodeAnalyzerImpl.java index e6b8d7f7f946..3a8b1a9d8d43 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/DaemonCodeAnalyzerImpl.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/DaemonCodeAnalyzerImpl.java @@ -159,11 +159,14 @@ public class DaemonCodeAnalyzerImpl extends DaemonCodeAnalyzer implements JDOMEx List result = new ArrayList(); result.addAll(action1.getHighlights()); - LocalInspectionsPass action3 = new LocalInspectionsPass(psiFile, document, 0, - psiFile.getTextLength(), LocalInspectionsPass.EMPTY_PRIORITY_RANGE, true); - action3.doCollectInformation(progress); + final VirtualFile virtualFile = psiFile.getVirtualFile(); + if (virtualFile != null && !virtualFile.getFileType().isBinary()) { + LocalInspectionsPass action3 = new LocalInspectionsPass(psiFile, document, 0, + psiFile.getTextLength(), LocalInspectionsPass.EMPTY_PRIORITY_RANGE, true); + action3.doCollectInformation(progress); - result.addAll(action3.getInfos()); + result.addAll(action3.getInfos()); + } return result; }