diff --git a/python/src/com/jetbrains/python/inspections/PyRedeclarationInspection.java b/python/src/com/jetbrains/python/inspections/PyRedeclarationInspection.java index e5e421990a68..f56753a8fa8b 100644 --- a/python/src/com/jetbrains/python/inspections/PyRedeclarationInspection.java +++ b/python/src/com/jetbrains/python/inspections/PyRedeclarationInspection.java @@ -79,7 +79,7 @@ public class PyRedeclarationInspection extends PyInspection { @Override public void visitPyTargetExpression(final PyTargetExpression node) { - if (PyNames.UNDERSCORE.equals(node.getText())) return; + if (node.isQualified() || PyNames.UNDERSCORE.equals(node.getText())) return; final ScopeOwner owner = ScopeUtil.getScopeOwner(node); if (owner instanceof PyFile || owner instanceof PyClass) { processElement(node); diff --git a/python/testData/inspections/PyRedeclarationInspection/qualifiedTarget.py b/python/testData/inspections/PyRedeclarationInspection/qualifiedTarget.py new file mode 100644 index 000000000000..4a0ed38b7df4 --- /dev/null +++ b/python/testData/inspections/PyRedeclarationInspection/qualifiedTarget.py @@ -0,0 +1,3 @@ +a = 10 +b = 10 +a.b = 10 \ 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 69f439e8e4a6..e08b2d7210a2 100644 --- a/python/testSrc/com/jetbrains/python/inspections/PyRedeclarationInspectionTest.java +++ b/python/testSrc/com/jetbrains/python/inspections/PyRedeclarationInspectionTest.java @@ -125,6 +125,11 @@ public class PyRedeclarationInspectionTest extends PyInspectionTestCase { doTest(); } + // PY-26591 + public void testQualifiedTarget() { + doTest(); + } + @NotNull @Override protected Class getInspectionClass() {