cs: skip return value changes for private methods

This commit is contained in:
anna
2010-09-10 21:50:09 +04:00
parent 734b3dd55a
commit 5f27df0847
5 changed files with 71 additions and 14 deletions
@@ -124,14 +124,7 @@ class JavaChangeInfoImpl implements JavaChangeInfo {
isVisibilityChanged = !method.hasModifierProperty(newVisibility);
isNameChanged = !newName.equals(this.oldName);
if (!method.isConstructor()){
try {
isReturnTypeChanged = !newReturnType.getType(this.method, manager).equals(this.method.getReturnType());
}
catch (IncorrectOperationException e) {
isReturnTypeChanged = true;
}
}
if (oldParameterNames.length != newParms.length){
isParameterSetOrOrderChanged = true;
}
@@ -216,6 +209,14 @@ class JavaChangeInfoImpl implements JavaChangeInfo {
oldParameterTypes[i] =
JavaPsiFacade.getInstance(parameter.getProject()).getElementFactory().createTypeElement(parameter.getType()).getText();
}
if (!method.isConstructor()){
try {
isReturnTypeChanged = !newReturnType.getType(this.method, method.getManager()).equals(this.method.getReturnType());
}
catch (IncorrectOperationException e) {
isReturnTypeChanged = true;
}
}
}
@NotNull
@@ -88,12 +88,33 @@ public class JavaChangeSignatureDetector implements LanguageChangeSignatureDetec
parameterInfo.getTypeWrapper().getType(element, element.getManager()),
oldParameterIndex == -1 ? "intellijidearulezzz" : "");
}
if (info.isReturnTypeChanged()) {
final String visibility = info.getNewVisibility();
if (Comparing.strEqual(visibility, PsiModifier.PRIVATE) &&
!info.isArrayToVarargs() &&
!info.isExceptionSetOrOrderChanged() &&
!info.isExceptionSetChanged() &&
!info.isNameChanged() &&
!info.isParameterSetOrOrderChanged() &&
!info.isParameterNamesChanged() &&
!info.isParameterTypesChanged()) {
return null;
}
}
final MyJavaChangeInfo javaChangeInfo =
new MyJavaChangeInfo(newVisibility, method, newReturnType, parameterInfos, info.getNewExceptions(), info.getOldName()) {
@Override
protected void fillOldParams(PsiMethod method) {
oldParameterNames = info.getOldParameterNames();
oldParameterTypes = info.getOldParameterTypes();
if (!method.isConstructor()) {
try {
isReturnTypeChanged = info.isReturnTypeChanged || !info.getNewReturnType().equals(newReturnType);
}
catch (IncorrectOperationException e) {
isReturnTypeChanged = true;
}
}
}
};
javaChangeInfo.setSuperMethod(info.getSuperMethod());
@@ -201,6 +222,7 @@ public class JavaChangeSignatureDetector implements LanguageChangeSignatureDetec
info.getNewExceptions(), info.getOldName()) {
@Override
protected void fillOldParams(PsiMethod method) {
super.fillOldParams(method);
oldParameterNames = info.getOldParameterNames();
oldParameterTypes = info.getOldParameterTypes();
}