From cf9065acfb87d96f62708df61fe27116f59c48da Mon Sep 17 00:00:00 2001 From: Ekaterina Tuzova Date: Wed, 28 Nov 2012 14:36:21 +0400 Subject: [PATCH] fixed PY-8128 Change Signature: signature for child method is not updated when changing method name --- .../changeSignature/PyChangeSignatureUsageProcessor.java | 3 +-- .../refactoring/changeSignature/renameOverriding.after.py | 8 ++++++++ .../changeSignature/renameOverriding.before.py | 8 ++++++++ .../changeSignature/PyChangeSignatureTest.java | 4 ++++ 4 files changed, 21 insertions(+), 2 deletions(-) create mode 100644 python/testData/refactoring/changeSignature/renameOverriding.after.py create mode 100644 python/testData/refactoring/changeSignature/renameOverriding.before.py diff --git a/python/src/com/jetbrains/python/refactoring/changeSignature/PyChangeSignatureUsageProcessor.java b/python/src/com/jetbrains/python/refactoring/changeSignature/PyChangeSignatureUsageProcessor.java index 7eb279165509..a00dce122276 100644 --- a/python/src/com/jetbrains/python/refactoring/changeSignature/PyChangeSignatureUsageProcessor.java +++ b/python/src/com/jetbrains/python/refactoring/changeSignature/PyChangeSignatureUsageProcessor.java @@ -232,8 +232,7 @@ public class PyChangeSignatureUsageProcessor implements ChangeSignatureUsageProc updateParameterList(changeInfo, function); } if (changeInfo.isNameChanged()) { - final PsiElement method = changeInfo.getMethod(); - RenameUtil.doRenameGenericNamedElement(method, changeInfo.getNewName(), UsageInfo.EMPTY_ARRAY, null); + RenameUtil.doRenameGenericNamedElement(function, changeInfo.getNewName(), UsageInfo.EMPTY_ARRAY, null); } } diff --git a/python/testData/refactoring/changeSignature/renameOverriding.after.py b/python/testData/refactoring/changeSignature/renameOverriding.after.py new file mode 100644 index 000000000000..41027c70f616 --- /dev/null +++ b/python/testData/refactoring/changeSignature/renameOverriding.after.py @@ -0,0 +1,8 @@ +class A(object): + def m1(self): + print(1) + + +class B(A): + def m1(self): + print(2) \ No newline at end of file diff --git a/python/testData/refactoring/changeSignature/renameOverriding.before.py b/python/testData/refactoring/changeSignature/renameOverriding.before.py new file mode 100644 index 000000000000..e7cd0e0a32cb --- /dev/null +++ b/python/testData/refactoring/changeSignature/renameOverriding.before.py @@ -0,0 +1,8 @@ +class A(object): + def m(self): + print(1) + + +class B(A): + def m(self): + print(2) \ No newline at end of file diff --git a/python/testSrc/com/jetbrains/python/refactoring/changeSignature/PyChangeSignatureTest.java b/python/testSrc/com/jetbrains/python/refactoring/changeSignature/PyChangeSignatureTest.java index 649dfe9c87b1..2071270423bd 100644 --- a/python/testSrc/com/jetbrains/python/refactoring/changeSignature/PyChangeSignatureTest.java +++ b/python/testSrc/com/jetbrains/python/refactoring/changeSignature/PyChangeSignatureTest.java @@ -87,6 +87,10 @@ public class PyChangeSignatureTest extends PyTestCase { new PyParameterInfo(-1, "a", "2", false)), LanguageLevel.PYTHON32); } + public void testRenameOverriding() { + doChangeSignatureTest("m1", Arrays.asList(new PyParameterInfo(0, "self", null, false))); + } + public void testEmptyParameterName() { doValidationTest(null, Arrays.asList(new PyParameterInfo(-1, "", "2", true)), PyBundle.message("refactoring.change.signature.dialog.validation.parameter.name"));