From 9f46e01c8867f1d7ab00294fcd3afd23b6f48b4c Mon Sep 17 00:00:00 2001 From: "Ilya.Kazakevich" Date: Tue, 13 Dec 2016 17:47:27 +0300 Subject: [PATCH] PY-21339: Use AppConfig for INSTALLED_APPS for Django 1.9+ * AppConfig added * #getTopLevelClasses() marked @NotNull since the only implementation is @NotNull * QualifiedNameResolverImpl verbosity improved --- python/psi-api/src/com/jetbrains/python/psi/PyFile.java | 1 + python/src/com/jetbrains/python/psi/impl/PyFileImpl.java | 1 + .../jetbrains/python/psi/resolve/QualifiedNameResolverImpl.java | 2 +- 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/python/psi-api/src/com/jetbrains/python/psi/PyFile.java b/python/psi-api/src/com/jetbrains/python/psi/PyFile.java index 2640a4f31c4f..cc00bb02efee 100644 --- a/python/psi-api/src/com/jetbrains/python/psi/PyFile.java +++ b/python/psi-api/src/com/jetbrains/python/psi/PyFile.java @@ -27,6 +27,7 @@ import java.util.List; public interface PyFile extends PyElement, PsiFile, PyDocStringOwner, ScopeOwner { List getStatements(); + @NotNull List getTopLevelClasses(); @NotNull diff --git a/python/src/com/jetbrains/python/psi/impl/PyFileImpl.java b/python/src/com/jetbrains/python/psi/impl/PyFileImpl.java index 74d2081c7c12..f06a73791f69 100644 --- a/python/src/com/jetbrains/python/psi/impl/PyFileImpl.java +++ b/python/src/com/jetbrains/python/psi/impl/PyFileImpl.java @@ -367,6 +367,7 @@ public class PyFileImpl extends PsiFileBase implements PyFile, PyExpression { } @Override + @NotNull public List getTopLevelClasses() { return PyPsiUtils.collectStubChildren(this, getStub(), PyElementTypes.CLASS_DECLARATION); } diff --git a/python/src/com/jetbrains/python/psi/resolve/QualifiedNameResolverImpl.java b/python/src/com/jetbrains/python/psi/resolve/QualifiedNameResolverImpl.java index d9d8a1e14ef0..e0fca1c33552 100644 --- a/python/src/com/jetbrains/python/psi/resolve/QualifiedNameResolverImpl.java +++ b/python/src/com/jetbrains/python/psi/resolve/QualifiedNameResolverImpl.java @@ -393,7 +393,7 @@ public class QualifiedNameResolverImpl implements RootVisitor, QualifiedNameReso RootVisitorHost.visitSdkRoots(myContext.getSdk(), this); } else { - throw new IllegalStateException(); + throw new IllegalStateException("Context is empty. Provide some context: module, file, sdk, etc"); } }