change signature: detect javadoc for moved&renamed parameter (IDEA-175363)

This commit is contained in:
Anna.Kozlova
2017-07-05 18:32:08 +02:00
parent 24b842b524
commit 008710be3a
4 changed files with 28 additions and 2 deletions
@@ -947,8 +947,9 @@ public class JavaChangeSignatureUsageProcessor implements ChangeSignatureUsagePr
RefactoringUtil.fixJavadocsForParams(method, newParameters, pair -> {
final PsiParameter parameter = pair.first;
final String oldParamName = pair.second;
final int idx = ArrayUtil.find(oldParameterNames, oldParamName);
return idx >= 0 && idx == method.getParameterList().getParameterIndex(parameter) && changeInfo.getNewParameters()[idx].getOldIndex() == idx;
final int oldIdx = ArrayUtil.find(oldParameterNames, oldParamName);
int newIndex = method.getParameterList().getParameterIndex(parameter);
return oldIdx >= 0 && newIndex >= 0 && changeInfo.getNewParameters()[newIndex].getOldIndex() == oldIdx;
}, paramName -> ArrayUtil.find(oldParameterNames, paramName) >= 0);
}
@@ -0,0 +1,8 @@
class X {
/**
* @param a aparam
* @param b bparam
*/
public void <caret>mymethod(boolean a, boolean b) { }
}
@@ -0,0 +1,9 @@
class X {
/**
* @param a aparam
* @param c
* @param b1 bparam
*/
public void mymethod(boolean a, boolean c, boolean b1) { }
}
@@ -226,6 +226,14 @@ public class ChangeSignatureTest extends ChangeSignatureBaseTest {
}, false);
}
public void testParamJavadocRenamedReordered() {
doTest(null, new ParameterInfoImpl[]{
new ParameterInfoImpl(0, "a", PsiType.BOOLEAN),
new ParameterInfoImpl(-1, "c", PsiType.BOOLEAN),
new ParameterInfoImpl(1, "b1", PsiType.BOOLEAN),
}, false);
}
public void testJavadocNoNewLineInserted() {
doTest(null, new ParameterInfoImpl[]{
new ParameterInfoImpl(0, "newArgs", PsiType.DOUBLE),