From 9f0f1b8f7dbb5239012c670b17708a92377a6e8d Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Thu, 1 Jul 2010 21:06:01 +0400 Subject: [PATCH] from __future__ imports aren't unused --- .../python/inspections/PyUnresolvedReferencesInspection.java | 5 ++++- python/testData/optimizeImports/fromFuture.after.py | 1 + python/testData/optimizeImports/fromFuture.py | 1 + .../testSrc/com/jetbrains/python/PyOptimizeImportsTest.java | 4 ++++ 4 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 python/testData/optimizeImports/fromFuture.after.py create mode 100644 python/testData/optimizeImports/fromFuture.py diff --git a/python/src/com/jetbrains/python/inspections/PyUnresolvedReferencesInspection.java b/python/src/com/jetbrains/python/inspections/PyUnresolvedReferencesInspection.java index fdf0304dc5d4..e0581c76604f 100644 --- a/python/src/com/jetbrains/python/inspections/PyUnresolvedReferencesInspection.java +++ b/python/src/com/jetbrains/python/inspections/PyUnresolvedReferencesInspection.java @@ -247,7 +247,10 @@ public class PyUnresolvedReferencesInspection extends PyInspection { @Override public void visitPyImportElement(PyImportElement node) { super.visitPyImportElement(node); - myAllImports.add(node); + final PyFromImportStatement fromImport = PsiTreeUtil.getParentOfType(node, PyFromImportStatement.class); + if (fromImport == null || !fromImport.isFromFuture()) { + myAllImports.add(node); + } } @Override diff --git a/python/testData/optimizeImports/fromFuture.after.py b/python/testData/optimizeImports/fromFuture.after.py new file mode 100644 index 000000000000..d3e937b78532 --- /dev/null +++ b/python/testData/optimizeImports/fromFuture.after.py @@ -0,0 +1 @@ +from __future__ import generators \ No newline at end of file diff --git a/python/testData/optimizeImports/fromFuture.py b/python/testData/optimizeImports/fromFuture.py new file mode 100644 index 000000000000..d3e937b78532 --- /dev/null +++ b/python/testData/optimizeImports/fromFuture.py @@ -0,0 +1 @@ +from __future__ import generators \ No newline at end of file diff --git a/python/testSrc/com/jetbrains/python/PyOptimizeImportsTest.java b/python/testSrc/com/jetbrains/python/PyOptimizeImportsTest.java index 192035528aee..8b2806c68abd 100644 --- a/python/testSrc/com/jetbrains/python/PyOptimizeImportsTest.java +++ b/python/testSrc/com/jetbrains/python/PyOptimizeImportsTest.java @@ -28,6 +28,10 @@ public class PyOptimizeImportsTest extends PyLightFixtureTestCase { doTest(); } + public void testFromFuture() throws Exception { + doTest(); + } + private void doTest() throws Exception { myFixture.configureByFile("optimizeImports/" + getTestName(true) + ".py"); OptimizeImportsAction.actionPerformedImpl(DataManager.getInstance().getDataContext(myFixture.getEditor().getContentComponent()));