summaryrefslogtreecommitdiff
path: root/python/src/com/jetbrains/python/psi/impl/PyClassImpl.java
diff options
context:
space:
mode:
authorTor Norbye <tnorbye@google.com>2014-09-04 13:25:33 -0700
committerTor Norbye <tnorbye@google.com>2014-09-04 13:25:33 -0700
commitd245f58efbfc26b13b9b9d5e52e6a83a0d76216c (patch)
treebca7d49005d81d10c70bc3f547df041c636b4300 /python/src/com/jetbrains/python/psi/impl/PyClassImpl.java
parent9cde0e3c015174898df8b8f3672185941fad4786 (diff)
parentc3d3a90f6b4ead083d63e28e6b9fcea93d675678 (diff)
downloadidea-d245f58efbfc26b13b9b9d5e52e6a83a0d76216c.tar.gz
Merge remote-tracking branch 'aosp/upstream-master' into merge
Diffstat (limited to 'python/src/com/jetbrains/python/psi/impl/PyClassImpl.java')
-rw-r--r--python/src/com/jetbrains/python/psi/impl/PyClassImpl.java28
1 files changed, 6 insertions, 22 deletions
diff --git a/python/src/com/jetbrains/python/psi/impl/PyClassImpl.java b/python/src/com/jetbrains/python/psi/impl/PyClassImpl.java
index 7538fbae2fd2..bb2104fc0c77 100644
--- a/python/src/com/jetbrains/python/psi/impl/PyClassImpl.java
+++ b/python/src/com/jetbrains/python/psi/impl/PyClassImpl.java
@@ -20,7 +20,6 @@ import com.intellij.lang.ASTNode;
import com.intellij.openapi.util.Comparing;
import com.intellij.openapi.util.Key;
import com.intellij.openapi.util.NotNullLazyValue;
-import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.*;
import com.intellij.psi.scope.PsiScopeProcessor;
import com.intellij.psi.search.LocalSearchScope;
@@ -187,6 +186,11 @@ public class PyClassImpl extends PyPresentableElementImpl<PyClassStub> implement
}
}
}
+ // Heuristic: unfold Foo[Bar] to Foo for subscription expressions for superclasses
+ else if (expression instanceof PySubscriptionExpression) {
+ final PySubscriptionExpression subscriptionExpr = (PySubscriptionExpression)expression;
+ return subscriptionExpr.getOperand();
+ }
return expression;
}
@@ -237,27 +241,7 @@ public class PyClassImpl extends PyPresentableElementImpl<PyClassStub> implement
@Nullable
public String getQualifiedName() {
- String name = getName();
- final PyClassStub stub = getStub();
- PsiElement ancestor = stub != null ? stub.getParentStub().getPsi() : getParent();
- while (!(ancestor instanceof PsiFile)) {
- if (ancestor == null) return name; // can this happen?
- if (ancestor instanceof PyClass) {
- name = ((PyClass)ancestor).getName() + "." + name;
- }
- ancestor = stub != null ? ((StubBasedPsiElement)ancestor).getStub().getParentStub().getPsi() : ancestor.getParent();
- }
-
- PsiFile psiFile = ((PsiFile)ancestor).getOriginalFile();
- final PyFile builtins = PyBuiltinCache.getInstance(this).getBuiltinsFile();
- if (!psiFile.equals(builtins)) {
- VirtualFile vFile = psiFile.getVirtualFile();
- if (vFile != null) {
- final String packageName = QualifiedNameFinder.findShortestImportableName(this, vFile);
- return packageName + "." + name;
- }
- }
- return name;
+ return QualifiedNameFinder.getQualifiedName(this);
}
@Override