check PsiModifiableCodeBlock.shouldChangeModificationCount() before checking instanse...
authorDaniil Ovchinnikov <daniil.ovchinnikov@jetbrains.com>
Wed, 16 Nov 2016 16:26:22 +0000 (19:26 +0300)
committerDaniil Ovchinnikov <daniil.ovchinnikov@jetbrains.com>
Wed, 16 Nov 2016 16:37:34 +0000 (19:37 +0300)
java/java-impl/src/com/intellij/psi/impl/JavaCodeBlockModificationListener.java

index b99d4a319e3695db349c4086974cdb67797548e2..401252b8bfb6e92892a3d229821fd7ff69ff4545 100644 (file)
@@ -113,24 +113,18 @@ public class JavaCodeBlockModificationListener implements PsiTreeChangePreproces
     return false;
   }
 
-  private static boolean isInsideCodeBlock(PsiElement element) {
-    if (element instanceof PsiFileSystemItem) {
-      return false;
-    }
-
+  private static boolean isInsideCodeBlock(final PsiElement element) {
     if (element == null || element.getParent() == null) return true;
 
     PsiElement parent = element;
     while (true) {
-      if (parent instanceof PsiFile || parent instanceof PsiDirectory || parent == null) {
-        return false;
-      }
-      if (parent instanceof PsiClass) return false; // anonymous or local class
       if (parent instanceof PsiModifiableCodeBlock) {
         if (!((PsiModifiableCodeBlock)parent).shouldChangeModificationCount(element)) {
           return true;
         }
       }
+      if (parent == null || parent instanceof PsiFileSystemItem) return false;
+      if (parent instanceof PsiClass) return false; // anonymous or local class
       parent = parent.getParent();
     }
   }