From e20f472cffb18c9ba50bbf1f5035b8e6cc1fb56e Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Tue, 14 Sep 2010 14:11:38 +0400 Subject: [PATCH] use correct first parameter name (PY-1811) --- .../codeInsight/override/PyOverrideImplementUtil.java | 2 +- python/testData/override/classmethodNewStyle.py | 7 +++++++ python/testData/override/classmethodNewStyle_after.py | 10 ++++++++++ .../testSrc/com/jetbrains/python/PyOverrideTest.java | 4 ++++ 4 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 python/testData/override/classmethodNewStyle.py create mode 100644 python/testData/override/classmethodNewStyle_after.py 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 {