used proper way to find __init__ method

This commit is contained in:
Ekaterina Tuzova
2013-03-22 12:16:27 +04:00
parent 03cddf546c
commit e6d9c74ab2
2 changed files with 6 additions and 4 deletions
@@ -4,6 +4,7 @@ import com.intellij.codeInspection.LocalInspectionToolSession;
import com.intellij.codeInspection.ProblemsHolder;
import com.intellij.psi.PsiElementVisitor;
import com.jetbrains.python.PyBundle;
import com.jetbrains.python.PyNames;
import com.jetbrains.python.inspections.quickfix.PyMoveAttributeToInitQuickFix;
import com.jetbrains.python.psi.PyClass;
import com.jetbrains.python.psi.PyFunction;
@@ -50,9 +51,9 @@ public class PyAttributeOutsideInitInspection extends PyInspection {
if (containingClass == null) return;
Map<String, PyTargetExpression> attributesInInit = new HashMap<String, PyTargetExpression>();
final PyFunction initOrNew = containingClass.findInitOrNew(true);
if (initOrNew != null)
PyClassImpl.collectInstanceAttributes(initOrNew, attributesInInit);
final PyFunction initMethod = containingClass.findMethodByName(PyNames.INIT, true);
if (initMethod != null)
PyClassImpl.collectInstanceAttributes(initMethod, attributesInInit);
Map<String, PyTargetExpression> attributes = new HashMap<String, PyTargetExpression>();
PyClassImpl.collectInstanceAttributes(node, attributes);
@@ -6,6 +6,7 @@ import com.intellij.openapi.project.Project;
import com.intellij.psi.PsiElement;
import com.intellij.psi.util.PsiTreeUtil;
import com.jetbrains.python.PyBundle;
import com.jetbrains.python.PyNames;
import com.jetbrains.python.psi.*;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
@@ -45,7 +46,7 @@ public class PyMoveAttributeToInitQuickFix implements LocalQuickFix {
}
private static boolean addDefinition(PsiElement copy, PyClass containingClass) {
PyFunction init = containingClass.findInitOrNew(false);
PyFunction init = containingClass.findMethodByName(PyNames.INIT, true);
if (init == null) {
final PyStatementList classStatementList = containingClass.getStatementList();