summaryrefslogtreecommitdiff
path: root/java/java-structure-view/src/com/intellij/ide/structureView/impl/java/PsiMethodTreeElement.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/java-structure-view/src/com/intellij/ide/structureView/impl/java/PsiMethodTreeElement.java')
-rw-r--r--java/java-structure-view/src/com/intellij/ide/structureView/impl/java/PsiMethodTreeElement.java19
1 files changed, 9 insertions, 10 deletions
diff --git a/java/java-structure-view/src/com/intellij/ide/structureView/impl/java/PsiMethodTreeElement.java b/java/java-structure-view/src/com/intellij/ide/structureView/impl/java/PsiMethodTreeElement.java
index 669080107623..58a04db8f32b 100644
--- a/java/java-structure-view/src/com/intellij/ide/structureView/impl/java/PsiMethodTreeElement.java
+++ b/java/java-structure-view/src/com/intellij/ide/structureView/impl/java/PsiMethodTreeElement.java
@@ -31,10 +31,7 @@ import com.intellij.util.Function;
import com.intellij.util.ui.UIUtil;
import org.jetbrains.annotations.NotNull;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.HashSet;
+import java.util.*;
import static com.intellij.psi.util.PsiFormatUtilBase.*;
@@ -47,20 +44,22 @@ public class PsiMethodTreeElement extends JavaClassTreeElementBase<PsiMethod> im
@Override
@NotNull
public Collection<StructureViewTreeElement> getChildrenBase() {
- final ArrayList<StructureViewTreeElement> result = new ArrayList<StructureViewTreeElement>();
+ final List<StructureViewTreeElement> emptyResult = Collections.emptyList();
final PsiMethod element = getElement();
- if (element == null || element instanceof SyntheticElement) return result;
+ if (element == null || element instanceof SyntheticElement) return emptyResult;
final PsiFile psiFile = element.getContainingFile();
- if (psiFile == null || psiFile instanceof PsiCompiledElement) return result;
+ if (psiFile == null || psiFile instanceof PsiCompiledElement) return emptyResult;
final TextRange range = element.getTextRange();
- if (range == null) return result;
+ if (range == null) return emptyResult;
final String fileText = psiFile.getText();
- if (fileText == null) return result;
+ if (fileText == null) return emptyResult;
+
+ if (!range.substring(fileText).contains(PsiKeyword.CLASS)) return emptyResult;
- if (!range.substring(fileText).contains(PsiKeyword.CLASS)) return result;
+ final ArrayList<StructureViewTreeElement> result = new ArrayList<StructureViewTreeElement>();
element.accept(new JavaRecursiveElementWalkingVisitor(){
@Override public void visitClass(PsiClass aClass) {