fixed PY-10296 Access to protected member should have different severity levels

This commit is contained in:
Ekaterina Tuzova
2013-07-26 13:55:51 +04:00
parent d4ea1ffaa5
commit f0e9deabf0
3 changed files with 9 additions and 1 deletions
@@ -7,6 +7,7 @@ import com.intellij.psi.PsiElementVisitor;
import com.intellij.psi.PsiReference;
import com.intellij.psi.util.PsiTreeUtil;
import com.jetbrains.python.PyBundle;
import com.jetbrains.python.PyNames;
import com.jetbrains.python.psi.PyClass;
import com.jetbrains.python.psi.PyExpression;
import com.jetbrains.python.psi.PyReferenceExpression;
@@ -46,7 +47,7 @@ public class PyProtectedMemberInspection extends PyInspection {
@Override
public void visitPyReferenceExpression(PyReferenceExpression node) {
final PyExpression qualifier = node.getQualifier();
if (qualifier == null) return;
if (qualifier == null || PyNames.CANONICAL_SELF.equals(qualifier.getText())) return;
final String name = node.getName();
if (name != null && name.startsWith("_") && !name.startsWith("__") && !name.endsWith("__")) {
final PyClass parentClass = PsiTreeUtil.getParentOfType(node, PyClass.class);
@@ -0,0 +1,3 @@
class B:
def __call__(self, event):
self._call_on_plugins("foo")
@@ -27,6 +27,10 @@ public class PyProtectedMemberInspectionTest extends PyTestCase {
doTest();
}
public void testSelfField() {
doTest();
}
private void doTest() {
myFixture.configureByFile("inspections/PyProtectedMemberInspection/" + getTestName(true) + ".py");
myFixture.enableInspections(PyProtectedMemberInspection.class);