From d7d59014b2abcb741ec6c56adf550241554228dd Mon Sep 17 00:00:00 2001 From: "Ilya.Kazakevich" Date: Fri, 4 Jul 2014 21:43:22 +0400 Subject: [PATCH] PY-13418 Unused whole multi-object-import when one of the imported objects not found --- .../PyUnresolvedReferencesInspection.java | 7 ++++++- .../OneUnsedOneMarked/a.py | 4 ++++ .../OneUnsedOneMarked/library.py | 1 + .../inspections/PyUnresolvedReferencesInspectionTest.java | 5 +++++ 4 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 python/testData/inspections/PyUnresolvedReferencesInspection/OneUnsedOneMarked/a.py create mode 100644 python/testData/inspections/PyUnresolvedReferencesInspection/OneUnsedOneMarked/library.py diff --git a/python/src/com/jetbrains/python/inspections/unresolvedReference/PyUnresolvedReferencesInspection.java b/python/src/com/jetbrains/python/inspections/unresolvedReference/PyUnresolvedReferencesInspection.java index fbe26803b39f..fac391abdff7 100644 --- a/python/src/com/jetbrains/python/inspections/unresolvedReference/PyUnresolvedReferencesInspection.java +++ b/python/src/com/jetbrains/python/inspections/unresolvedReference/PyUnresolvedReferencesInspection.java @@ -997,7 +997,12 @@ public class PyUnresolvedReferencesInspection extends PyInspection { if (element == null) { if (importElement.getImportedQName() != null) { //Mark import as unused even if it can't be resolved - result.add(importElement.getParent()); + if (areAllImportsUnused(importStatement, unusedImports)) { + result.add(importStatement); + } + else { + result.add(importElement); + } } continue; } diff --git a/python/testData/inspections/PyUnresolvedReferencesInspection/OneUnsedOneMarked/a.py b/python/testData/inspections/PyUnresolvedReferencesInspection/OneUnsedOneMarked/a.py new file mode 100644 index 000000000000..baae7fc5fe65 --- /dev/null +++ b/python/testData/inspections/PyUnresolvedReferencesInspection/OneUnsedOneMarked/a.py @@ -0,0 +1,4 @@ +from library import foo,bar + + +print(foo) \ No newline at end of file diff --git a/python/testData/inspections/PyUnresolvedReferencesInspection/OneUnsedOneMarked/library.py b/python/testData/inspections/PyUnresolvedReferencesInspection/OneUnsedOneMarked/library.py new file mode 100644 index 000000000000..048ea67a76d9 --- /dev/null +++ b/python/testData/inspections/PyUnresolvedReferencesInspection/OneUnsedOneMarked/library.py @@ -0,0 +1 @@ +foo = 0 \ No newline at end of file diff --git a/python/testSrc/com/jetbrains/python/inspections/PyUnresolvedReferencesInspectionTest.java b/python/testSrc/com/jetbrains/python/inspections/PyUnresolvedReferencesInspectionTest.java index 21417363faa6..e614edd8e627 100644 --- a/python/testSrc/com/jetbrains/python/inspections/PyUnresolvedReferencesInspectionTest.java +++ b/python/testSrc/com/jetbrains/python/inspections/PyUnresolvedReferencesInspectionTest.java @@ -361,6 +361,11 @@ public class PyUnresolvedReferencesInspectionTest extends PyInspectionTestCase { doTest(); } + // PY-13418 + public void testOneUnsedOneMarked() { + doMultiFileTest(); + } + @NotNull @Override protected Class getInspectionClass() {