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()));