diff --git a/python/src/com/jetbrains/python/inspections/PyUnresolvedReferencesInspection.java b/python/src/com/jetbrains/python/inspections/PyUnresolvedReferencesInspection.java index da780e35414d..13a9c1ee892b 100644 --- a/python/src/com/jetbrains/python/inspections/PyUnresolvedReferencesInspection.java +++ b/python/src/com/jetbrains/python/inspections/PyUnresolvedReferencesInspection.java @@ -594,9 +594,13 @@ public class PyUnresolvedReferencesInspection extends PyInspection { } Set unusedStatements = new HashSet(); + final PyUnresolvedReferencesInspection suppressableInspection = new PyUnresolvedReferencesInspection(); for (NameDefiner unusedImport : unusedImports) { PyImportStatementBase importStatement = PsiTreeUtil.getParentOfType(unusedImport, PyImportStatementBase.class); if (importStatement != null && !unusedStatements.contains(importStatement) && !myUsedImports.contains(importStatement)) { + if (suppressableInspection.isSuppressedFor(importStatement)) { + continue; + } // don't remove as unused imports in try/except statements if (PsiTreeUtil.getParentOfType(importStatement, PyTryExceptStatement.class) != null) { continue; diff --git a/python/testData/optimizeImports/suppressed.after.py b/python/testData/optimizeImports/suppressed.after.py new file mode 100644 index 000000000000..764573a240fa --- /dev/null +++ b/python/testData/optimizeImports/suppressed.after.py @@ -0,0 +1,2 @@ +#noinspection PyUnresolvedReferences +import sys diff --git a/python/testData/optimizeImports/suppressed.py b/python/testData/optimizeImports/suppressed.py new file mode 100644 index 000000000000..764573a240fa --- /dev/null +++ b/python/testData/optimizeImports/suppressed.py @@ -0,0 +1,2 @@ +#noinspection PyUnresolvedReferences +import sys diff --git a/python/testSrc/com/jetbrains/python/PyOptimizeImportsTest.java b/python/testSrc/com/jetbrains/python/PyOptimizeImportsTest.java index 3aaaed90416b..ab05d8be2a76 100644 --- a/python/testSrc/com/jetbrains/python/PyOptimizeImportsTest.java +++ b/python/testSrc/com/jetbrains/python/PyOptimizeImportsTest.java @@ -35,6 +35,10 @@ public class PyOptimizeImportsTest extends PyTestCase { public void testUnresolved() { // PY-2201 doTest(); } + + public void testSuppressed() { // PY-5228 + doTest(); + } private void doTest() { myFixture.configureByFile("optimizeImports/" + getTestName(true) + ".py");