fixed PY-3278 False positive for 'Super constructor call is missing'

This commit is contained in:
Ekaterina Tuzova
2011-04-07 19:14:43 +04:00
parent ee3772806c
commit 68eea35397
2 changed files with 15 additions and 5 deletions
@@ -40,17 +40,17 @@ public class PyMissingConstructorInspection extends PyInspection {
@Override
public void visitPyClass(final PyClass node) {
PyClass[] superClasses = node.getSuperClasses();
PsiElement[] superClasses = node.getSuperClassExpressions();
if (superClasses.length == 0)
return;
Set<String> superNames = new HashSet<String>();
if (node.isNewStyleClass())
superNames.add(PyNames.SUPER);
for (PyClass cl : superClasses) {
if (!PyNames.OBJECT.equals(cl.getName()))
superNames.add(cl.getName());
for (PsiElement cl : superClasses) {
if (!PyNames.OBJECT.equals(cl.getText()))
superNames.add(cl.getText());
}
if (superClasses.length == 1 && PyNames.OBJECT.equals(superClasses[0].getName()))
if (superClasses.length == 1 && PyNames.OBJECT.equals(superClasses[0].getText()))
return;
PyFunction initMethod = node.findMethodByName(PyNames.INIT, false);
@@ -1,3 +1,13 @@
import random
class R(random.WichmannHill):
def <warning descr="Call to constructor of super class is missed">__init__</warning>(self):
pass
#PY-3278
class R1(random.WichmannHill):
def __init__(self):
random.WichmannHill.__init__(self)
class A(object):
def __init__(self):
pass