optimize imports doesn't remove imports for which inspection is suppressed (PY-5228)

This commit is contained in:
Dmitry Jemerov
2011-12-09 20:32:26 +01:00
parent f7419666e2
commit a80df9b3a9
4 changed files with 12 additions and 0 deletions
@@ -594,9 +594,13 @@ public class PyUnresolvedReferencesInspection extends PyInspection {
}
Set<PyImportStatementBase> unusedStatements = new HashSet<PyImportStatementBase>();
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;
@@ -0,0 +1,2 @@
#noinspection PyUnresolvedReferences
import sys
@@ -0,0 +1,2 @@
#noinspection PyUnresolvedReferences
import sys
@@ -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");