mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
fix PY-8909 change method signature doesn't change argument names in function body
This commit is contained in:
@@ -37,6 +37,7 @@ public class PyChangeInfo implements ChangeInfo {
|
||||
|
||||
if (oldParameters.length != newParameterInfo.length) {
|
||||
myIsParameterSetOrOrderChanged = true;
|
||||
myIsParametersNameChanged = true;
|
||||
}
|
||||
else {
|
||||
myIsParameterSetOrOrderChanged = false;
|
||||
|
||||
+5
-3
@@ -285,9 +285,11 @@ public class PyChangeSignatureUsageProcessor implements ChangeSignatureUsageProc
|
||||
for (int i = 0; i != parameters.length; ++i) {
|
||||
PyParameterInfo paramInfo = parameters[i];
|
||||
final PyParameter[] oldParameters = function.getParameterList().getParameters();
|
||||
final UsageInfo[] usages = RenameUtil.findUsages(oldParameters[paramInfo.getOldIndex()], paramInfo.getName(), true, false, null);
|
||||
for (UsageInfo info : usages) {
|
||||
RenameUtil.rename(info, paramInfo.getName());
|
||||
if (paramInfo.getOldIndex() >= 0) {
|
||||
final UsageInfo[] usages = RenameUtil.findUsages(oldParameters[paramInfo.getOldIndex()], paramInfo.getName(), true, false, null);
|
||||
for (UsageInfo info : usages) {
|
||||
RenameUtil.rename(info, paramInfo.getName());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
def foo(b, a2=2):
|
||||
a2 += 1
|
||||
@@ -0,0 +1,2 @@
|
||||
def bar(a=2):
|
||||
a += 1
|
||||
+5
@@ -122,6 +122,11 @@ public class PyChangeSignatureTest extends PyTestCase {
|
||||
new PyParameterInfo(3, "**extra_info", null, false)));
|
||||
}
|
||||
|
||||
public void testMoveRenameParam() {
|
||||
doChangeSignatureTest("foo", Arrays.asList(new PyParameterInfo(-1, "b", "1", false),
|
||||
new PyParameterInfo(0, "a2", "2", true)));
|
||||
}
|
||||
|
||||
public void testKeywordOnlyMove() {
|
||||
doChangeSignatureTest("f", Arrays.asList(new PyParameterInfo(2, "param2", null, false),
|
||||
new PyParameterInfo(0, "*", null, false),
|
||||
|
||||
Reference in New Issue
Block a user