From adf7e75b1798b909be43d5bfb71b48ecefcb7b7a Mon Sep 17 00:00:00 2001 From: Semyon Proshev Date: Wed, 21 Feb 2018 15:26:34 +0300 Subject: [PATCH] Don't forget about redeclaration under `except` (PY-28593) --- .../python/inspections/PyRedeclarationInspection.java | 2 +- .../PyRedeclarationInspection/redeclarationInExcept.py | 4 ++++ .../python/inspections/PyRedeclarationInspectionTest.java | 5 +++++ 3 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 python/testData/inspections/PyRedeclarationInspection/redeclarationInExcept.py diff --git a/python/src/com/jetbrains/python/inspections/PyRedeclarationInspection.java b/python/src/com/jetbrains/python/inspections/PyRedeclarationInspection.java index 670c35a857bb..04747c166f50 100644 --- a/python/src/com/jetbrains/python/inspections/PyRedeclarationInspection.java +++ b/python/src/com/jetbrains/python/inspections/PyRedeclarationInspection.java @@ -172,7 +172,7 @@ public class PyRedeclarationInspection extends PyInspection { final PsiElement element = instruction.getElement(); if (element == null) return false; - if (element instanceof PyTryExceptStatement || element instanceof PyConditionalExpression) return true; + if (element instanceof PyTryPart || element instanceof PyExceptPart || element instanceof PyConditionalExpression) return true; if (element instanceof PyForStatement) { final PyForPart forPart = ((PyForStatement)element).getForPart(); diff --git a/python/testData/inspections/PyRedeclarationInspection/redeclarationInExcept.py b/python/testData/inspections/PyRedeclarationInspection/redeclarationInExcept.py new file mode 100644 index 000000000000..646e9fe8ac78 --- /dev/null +++ b/python/testData/inspections/PyRedeclarationInspection/redeclarationInExcept.py @@ -0,0 +1,4 @@ +try: + import a +except: + a = None \ No newline at end of file diff --git a/python/testSrc/com/jetbrains/python/inspections/PyRedeclarationInspectionTest.java b/python/testSrc/com/jetbrains/python/inspections/PyRedeclarationInspectionTest.java index c5edfc5c429a..e97069f8b9cd 100644 --- a/python/testSrc/com/jetbrains/python/inspections/PyRedeclarationInspectionTest.java +++ b/python/testSrc/com/jetbrains/python/inspections/PyRedeclarationInspectionTest.java @@ -164,6 +164,11 @@ public class PyRedeclarationInspectionTest extends PyInspectionTestCase { doTest(); } + // PY-28593 + public void testRedeclarationInExcept() { + doTest(); + } + @NotNull @Override protected Class getInspectionClass() {