diff --git a/python/src/com/jetbrains/python/codeInsight/override/PyOverrideImplementUtil.java b/python/src/com/jetbrains/python/codeInsight/override/PyOverrideImplementUtil.java index 9d5d71db7b0b..130502b1d72c 100644 --- a/python/src/com/jetbrains/python/codeInsight/override/PyOverrideImplementUtil.java +++ b/python/src/com/jetbrains/python/codeInsight/override/PyOverrideImplementUtil.java @@ -177,7 +177,7 @@ public class PyOverrideImplementUtil { statementBody.append("("); final LanguageLevel langLevel = ((PyFile)pyClass.getContainingFile()).getLanguageLevel(); if (!langLevel.isPy3K()) { - statementBody.append(pyClass.getName()).append(", self"); + statementBody.append(pyClass.getName()).append(", ").append(PyUtil.getFirstParameterName(baseFunction)); } statementBody.append(").").append(baseFunction.getName()).append("("); startIndex = 1; diff --git a/python/testData/override/classmethodNewStyle.py b/python/testData/override/classmethodNewStyle.py new file mode 100644 index 000000000000..267d96f5d899 --- /dev/null +++ b/python/testData/override/classmethodNewStyle.py @@ -0,0 +1,7 @@ +class A(object): + @classmethod + def m(cls): + pass + +class B(A): + pass \ No newline at end of file diff --git a/python/testData/override/classmethodNewStyle_after.py b/python/testData/override/classmethodNewStyle_after.py new file mode 100644 index 000000000000..c5e048d6cde2 --- /dev/null +++ b/python/testData/override/classmethodNewStyle_after.py @@ -0,0 +1,10 @@ +class A(object): + @classmethod + def m(cls): + pass + +class B(A): + @classmethod + def m(cls): + super(B, cls).m() + diff --git a/python/testSrc/com/jetbrains/python/PyOverrideTest.java b/python/testSrc/com/jetbrains/python/PyOverrideTest.java index 5a671f70b4b8..b9be7f4cba3a 100644 --- a/python/testSrc/com/jetbrains/python/PyOverrideTest.java +++ b/python/testSrc/com/jetbrains/python/PyOverrideTest.java @@ -42,6 +42,10 @@ public class PyOverrideTest extends PyLightFixtureTestCase { doTest(); } + public void testClassmethodNewStyle() { + doTest(); + } + public void testPy3k() { PythonLanguageLevelPusher.setForcedLanguageLevel(myFixture.getProject(), LanguageLevel.PYTHON31); try {