diff --git a/python/python-psi-impl/src/com/jetbrains/python/psi/impl/PyFunctionImpl.java b/python/python-psi-impl/src/com/jetbrains/python/psi/impl/PyFunctionImpl.java index 2215d2a8c6aa..ddbefd0d82dc 100644 --- a/python/python-psi-impl/src/com/jetbrains/python/psi/impl/PyFunctionImpl.java +++ b/python/python-psi-impl/src/com/jetbrains/python/psi/impl/PyFunctionImpl.java @@ -790,15 +790,6 @@ public class PyFunctionImpl extends PyBaseElementImpl implements return getStubOrPsiChild(PyStubElementTypes.ANNOTATION); } - /** - * is `function` a method or a classmethod - */ - public static boolean isMethod(PyFunction function) { - final var isMethod = ScopeUtil.getScopeOwner(function) instanceof PyClass; - final var modifier = function.getModifier(); - return (isMethod && modifier == null) || modifier == CLASSMETHOD; - } - /** * @param self should be this */ diff --git a/python/python-psi-impl/src/com/jetbrains/python/validation/PyParameterListAnnotatorVisitor.java b/python/python-psi-impl/src/com/jetbrains/python/validation/PyParameterListAnnotatorVisitor.java index 617fd0ee286b..b65d43f96179 100644 --- a/python/python-psi-impl/src/com/jetbrains/python/validation/PyParameterListAnnotatorVisitor.java +++ b/python/python-psi-impl/src/com/jetbrains/python/validation/PyParameterListAnnotatorVisitor.java @@ -19,7 +19,6 @@ import com.intellij.lang.annotation.HighlightSeverity; import com.jetbrains.python.PyPsiBundle; import com.jetbrains.python.psi.*; import com.jetbrains.python.psi.impl.ParamHelper; -import com.jetbrains.python.psi.impl.PyFunctionImpl; import org.jetbrains.annotations.NotNull; import java.util.HashSet; @@ -38,7 +37,6 @@ public class PyParameterListAnnotatorVisitor extends PyElementVisitor { @Override public void visitPyParameterList(final @NotNull PyParameterList paramlist) { final LanguageLevel languageLevel = LanguageLevel.forElement(paramlist); - final var hasImplicit = paramlist.getParent() instanceof PyFunction function && PyFunctionImpl.isMethod(function); ParamHelper.walkDownParamArray( paramlist.getParameters(), @@ -55,7 +53,7 @@ public class PyParameterListAnnotatorVisitor extends PyElementVisitor { @Override public void visitNamedParameter(PyNamedParameter parameter, boolean first, boolean last) { final var name = parameter.getName(); - if (!hadKeyword && name != null && !(hasImplicit && first) && !isPrivate(name)) { + if (!hadKeyword && name != null && !parameter.isSelf() && !isPrivate(name)) { hadKeyword = true; } else if (hadKeyword && !hadPositionalContainer && !hadSingleStar && name != null && !hadSlash && isPrivate(name)) { diff --git a/python/testData/highlighting/historicalPositionalOnlyParameters.py b/python/testData/highlighting/historicalPositionalOnlyParameters.py index d16df2b8969a..f023489d9e09 100644 --- a/python/testData/highlighting/historicalPositionalOnlyParameters.py +++ b/python/testData/highlighting/historicalPositionalOnlyParameters.py @@ -15,4 +15,5 @@ class A: @staticmethod def s1(__b): pass @staticmethod - def s1(a, __b): pass \ No newline at end of file + def s1(a, __b): pass + def __new__(cls, __b): pass \ No newline at end of file