mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
accept either 'self' or 'cls' for all methods in metaclass (PY-1224)
This commit is contained in:
@@ -1,12 +1,9 @@
|
||||
package com.jetbrains.python.inspections;
|
||||
|
||||
import com.intellij.codeHighlighting.HighlightDisplayLevel;
|
||||
import com.intellij.codeInspection.LocalInspectionToolSession;
|
||||
import com.intellij.codeInspection.ProblemHighlightType;
|
||||
import com.intellij.codeInspection.ProblemsHolder;
|
||||
import com.intellij.lang.ASTNode;
|
||||
import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.module.ModuleUtil;
|
||||
import com.intellij.openapi.util.Ref;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiElementVisitor;
|
||||
@@ -15,11 +12,7 @@ import com.jetbrains.python.PyNames;
|
||||
import com.jetbrains.python.actions.AddSelfQuickFix;
|
||||
import com.jetbrains.python.actions.RenameParameterQuickFix;
|
||||
import com.jetbrains.python.psi.*;
|
||||
import com.jetbrains.python.psi.resolve.PyResolveUtil;
|
||||
import com.jetbrains.python.psi.resolve.ResolveImportUtil;
|
||||
import com.jetbrains.python.psi.types.PyClassType;
|
||||
import com.jetbrains.python.psi.types.PyType;
|
||||
import com.jetbrains.python.psi.types.TypeEvalContext;
|
||||
import org.jetbrains.annotations.Nls;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -146,6 +139,7 @@ public class PyMethodParametersInspection extends PyInspection {
|
||||
}
|
||||
if (flags.isMetaclassMethod()) {
|
||||
String expected_name;
|
||||
String alternativeName = null;
|
||||
if (PyNames.NEW.equals(method_name) || flags.isClassMethod()) {
|
||||
expected_name = MCS;
|
||||
}
|
||||
@@ -154,8 +148,9 @@ public class PyMethodParametersInspection extends PyInspection {
|
||||
}
|
||||
else {
|
||||
expected_name = PyNames.CANONICAL_SELF;
|
||||
alternativeName = CLS;
|
||||
}
|
||||
if (!expected_name.equals(pname)) {
|
||||
if (!expected_name.equals(pname) && (alternativeName == null || !alternativeName.equals(pname))) {
|
||||
registerProblem(
|
||||
PyUtil.sure(params[0].getNode()).getPsi(),
|
||||
PyBundle.message("INSP.usually.named.$0", expected_name),
|
||||
|
||||
@@ -50,11 +50,6 @@
|
||||
<line>68</line>
|
||||
<description>Usually first parameter of such methods is named 'cls'</description>
|
||||
</problem>
|
||||
<problem>
|
||||
<file>first_arg.py</file>
|
||||
<line>71</line>
|
||||
<description>Usually first parameter of such methods is named 'self'</description>
|
||||
</problem>
|
||||
<problem>
|
||||
<file>first_arg.py</file>
|
||||
<line>75</line>
|
||||
|
||||
Reference in New Issue
Block a user