change signature: propagate params fix (IDEA-110601)

This commit is contained in:
anna
2013-07-24 18:59:30 +02:00
parent 991cb3dad4
commit ec8876bed5
5 changed files with 12 additions and 3 deletions
@@ -258,10 +258,11 @@ class JavaChangeInfoImpl implements JavaChangeInfo {
}
protected void setupPropagationEnabled(final PsiParameter[] parameters, final ParameterInfoImpl[] newParms) {
if (parameters.length != newParms.length) {
if (parameters.length >= newParms.length) {
isPropagationEnabled = false;
}
else {
isPropagationEnabled = !propagateParametersMethods.isEmpty();
for (int i = 0; i < parameters.length; i++) {
final ParameterInfoImpl newParm = newParms[i];
if (newParm.oldParameterIndex != i) {
@@ -380,7 +380,7 @@ public class JavaChangeSignatureUsageProcessor implements ChangeSignatureUsagePr
else {
newArg = factory.createExpressionFromText(info.getName(), list);
}
JavaCodeStyleManager.getInstance(list.getProject()).shortenClassReferences(list.add(newArg));
if (newArg != null) JavaCodeStyleManager.getInstance(list.getProject()).shortenClassReferences(list.add(newArg));
}
}
else {
@@ -6,4 +6,8 @@ public class C {
int s;
subject(null);
}
void caller1() {
caller();
}
}
@@ -6,4 +6,8 @@ public class C {
int s;
subject(null, b);
}
void caller1() {
caller();
}
}
@@ -421,7 +421,7 @@ public class ChangeSignatureTest extends LightRefactoringTestCase {
method.getName(),
CanonicalTypes.createTypeWrapper(PsiType.VOID), new ParameterInfoImpl[]{
new ParameterInfoImpl(0, parameters[0].getName(), parameters[0].getType()),
new ParameterInfoImpl(-1, "b", PsiType.BOOLEAN, "true")}, null,
new ParameterInfoImpl(-1, "b", PsiType.BOOLEAN)}, null,
propagateParametersMethods, null).run();
@NonNls String after = basePath + "_after.java";
checkResultByFile(after);