summaryrefslogtreecommitdiff
path: root/python/src/com/jetbrains/python/hierarchy/treestructures/PySubTypesHierarchyTreeStructure.java
diff options
context:
space:
mode:
Diffstat (limited to 'python/src/com/jetbrains/python/hierarchy/treestructures/PySubTypesHierarchyTreeStructure.java')
-rw-r--r--python/src/com/jetbrains/python/hierarchy/treestructures/PySubTypesHierarchyTreeStructure.java18
1 files changed, 11 insertions, 7 deletions
diff --git a/python/src/com/jetbrains/python/hierarchy/treestructures/PySubTypesHierarchyTreeStructure.java b/python/src/com/jetbrains/python/hierarchy/treestructures/PySubTypesHierarchyTreeStructure.java
index 7b43fe7329cf..f4287b28bd6c 100644
--- a/python/src/com/jetbrains/python/hierarchy/treestructures/PySubTypesHierarchyTreeStructure.java
+++ b/python/src/com/jetbrains/python/hierarchy/treestructures/PySubTypesHierarchyTreeStructure.java
@@ -18,9 +18,10 @@ package com.jetbrains.python.hierarchy.treestructures;
import com.intellij.ide.hierarchy.HierarchyNodeDescriptor;
import com.intellij.ide.hierarchy.HierarchyTreeStructure;
import com.intellij.openapi.project.Project;
+import com.intellij.psi.PsiElement;
import com.intellij.util.ArrayUtil;
import com.intellij.util.Query;
-import com.jetbrains.python.hierarchy.PyTypeHierarchyNodeDescriptor;
+import com.jetbrains.python.hierarchy.PyHierarchyNodeDescriptor;
import com.jetbrains.python.psi.PyClass;
import com.jetbrains.python.psi.search.PyClassInheritorsSearch;
import org.jetbrains.annotations.NotNull;
@@ -40,17 +41,20 @@ public class PySubTypesHierarchyTreeStructure extends HierarchyTreeStructure {
}
public PySubTypesHierarchyTreeStructure(@NotNull final PyClass cl) {
- super(cl.getProject(), new PyTypeHierarchyNodeDescriptor(null, cl, true));
+ super(cl.getProject(), new PyHierarchyNodeDescriptor(null, cl, true));
}
@NotNull
protected Object[] buildChildren(@NotNull HierarchyNodeDescriptor descriptor) {
- final PyClass classElement = ((PyTypeHierarchyNodeDescriptor)descriptor).getClassElement();
- Query<PyClass> subClasses = PyClassInheritorsSearch.search(classElement, false);
+ final List<PyHierarchyNodeDescriptor> res = new ArrayList<PyHierarchyNodeDescriptor>();
+ final PsiElement element = ((PyHierarchyNodeDescriptor)descriptor).getPsiElement();
+ if (element instanceof PyClass) {
+ final PyClass cls = (PyClass)element;
+ Query<PyClass> subClasses = PyClassInheritorsSearch.search(cls, false);
+ for (PyClass subClass : subClasses) {
+ res.add(new PyHierarchyNodeDescriptor(descriptor, subClass, false));
+ }
- List<PyTypeHierarchyNodeDescriptor> res = new ArrayList<PyTypeHierarchyNodeDescriptor>();
- for (PyClass cl : subClasses) {
- res.add(new PyTypeHierarchyNodeDescriptor(descriptor, cl, false));
}
return ArrayUtil.toObjectArray(res);