imports inside try/except statements shouldn't be optimized away

This commit is contained in:
Dmitry Jemerov
2010-04-30 21:15:22 +04:00
parent bf294f8eee
commit 1df360cfdf
4 changed files with 16 additions and 0 deletions

View File

@@ -464,6 +464,10 @@ public class PyUnresolvedReferencesInspection extends LocalInspectionTool {
for (NameDefiner unusedImport : unusedImports) {
PyImportStatementBase importStatement = PsiTreeUtil.getParentOfType(unusedImport, PyImportStatementBase.class);
if (importStatement != null && !unusedStatements.contains(importStatement)) {
// don't remove as unused imports in try/except statements
if (PsiTreeUtil.getParentOfType(importStatement, PyTryExceptStatement.class) != null) {
continue;
}
if (unusedImport instanceof PyStarImportElement || areAllImportsUnused(importStatement, unusedImports)) {
unusedStatements.add(importStatement);
result.add(importStatement);

View File

@@ -0,0 +1,4 @@
try:
import Image
except ImportError:
pass

View File

@@ -0,0 +1,4 @@
try:
import Image
except ImportError:
pass

View File

@@ -24,6 +24,10 @@ public class PyOptimizeImportsTest extends PyLightFixtureTestCase {
doTest();
}
public void testTryExcept() throws Exception {
doTest();
}
private void doTest() throws Exception {
myFixture.configureByFile("optimizeImports/" + getTestName(true) + ".py");
OptimizeImportsAction.actionPerformedImpl(DataManager.getInstance().getDataContext(myFixture.getEditor().getContentComponent()));