change signature: do not multiple javadocs (IDEA-94465)

This commit is contained in:
anna
2012-11-09 13:25:11 +01:00
parent 7b2151de3b
commit 0a2b36f3d7
4 changed files with 34 additions and 2 deletions

View File

@@ -804,7 +804,7 @@ public class JavaChangeSignatureUsageProcessor implements ChangeSignatureUsagePr
for (int i = 0; i < newParamsLength; i++) {
JavaParameterInfo newParm = newParms[i];
if (newParm.getOldIndex() < 0 ||
!(newParm.getName().equals(oldParameterNames[newParm.getOldIndex()]) || newParm.getOldIndex() == i || newParm.getTypeText().equals(changeInfo.getOldParameterTypes()[newParm.getOldIndex()]))) {
newParm.getOldIndex() == i && !(newParm.getName().equals(oldParameterNames[newParm.getOldIndex()]) && newParm.getTypeText().equals(changeInfo.getOldParameterTypes()[newParm.getOldIndex()]))) {
newParameters.add(parameters[i]);
}
}
@@ -814,7 +814,7 @@ public class JavaChangeSignatureUsageProcessor implements ChangeSignatureUsagePr
final PsiParameter parameter = pair.first;
final String oldParamName = pair.second;
final int idx = Arrays.binarySearch(oldParameterNames, oldParamName);
return idx >= 0 && (parameter.getType().equalsToText(changeInfo.getOldParameterTypes()[idx]) || idx == method.getParameterList().getParameterIndex(parameter));
return idx >= 0 && idx == method.getParameterList().getParameterIndex(parameter) && changeInfo.getNewParameters()[idx].getOldIndex() == idx;
}
});
}

View File

@@ -0,0 +1,12 @@
class X {
/**
* Has a method called {@link #mymethod(boolean)}.
*/
public class TestRefactorLink {
/**
* @param a aparam
*/
public void <caret>mymethod(boolean a) { }
}
}

View File

@@ -0,0 +1,13 @@
class X {
/**
* Has a method called {@link #mymethod(boolean, boolean)}.
*/
public class TestRefactorLink {
/**
* @param z
* @param a aparam
*/
public void mymethod(boolean z, boolean a) { }
}
}

View File

@@ -155,6 +155,13 @@ public class ChangeSignatureTest extends LightRefactoringTestCase {
}, false);
}
public void testParamJavadoc2() throws Exception {
doTest(null, new ParameterInfoImpl[]{
new ParameterInfoImpl(-1, "z", PsiType.BOOLEAN),
new ParameterInfoImpl(0, "a", PsiType.BOOLEAN),
}, false);
}
public void testSuperCallFromOtherMethod() throws Exception {
doTest(null, new ParameterInfoImpl[] {
new ParameterInfoImpl(-1, "nnn", PsiType.INT, "-222"),