mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
cs: skip return value changes for private methods
This commit is contained in:
@@ -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
|
||||
|
||||
+22
@@ -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();
|
||||
}
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
class Test {
|
||||
<caret> void foo() {
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
class Test {
|
||||
private <caret> foo() {
|
||||
}
|
||||
}
|
||||
@@ -24,13 +24,16 @@ import com.intellij.openapi.editor.actions.EditorActionUtil;
|
||||
import com.intellij.psi.PsiManager;
|
||||
import com.intellij.refactoring.changeSignature.ChangeSignatureGestureDetector;
|
||||
import com.intellij.testFramework.fixtures.LightCodeInsightFixtureTestCase;
|
||||
import junit.framework.Assert;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* User: anna
|
||||
* Date: Sep 9, 2010
|
||||
*/
|
||||
public class ChangeSignatureGestureTest extends LightCodeInsightFixtureTestCase {
|
||||
private void doTest(Runnable run) {
|
||||
private void doTest(Runnable run, boolean shouldShow) {
|
||||
myFixture.configureByFile("/refactoring/changeSignatureGesture/" + getTestName(false) + ".java");
|
||||
final ChangeSignatureGestureDetector detector = ChangeSignatureGestureDetector.getInstance(getProject());
|
||||
final Document document = myFixture.getEditor().getDocument();
|
||||
@@ -39,9 +42,15 @@ public class ChangeSignatureGestureTest extends LightCodeInsightFixtureTestCase
|
||||
detector.addDocListener(document);
|
||||
run.run();
|
||||
myFixture.doHighlighting();
|
||||
final IntentionAction intention = myFixture.findSingleIntention("Change signature ...");
|
||||
myFixture.launchAction(intention);
|
||||
myFixture.checkResultByFile("/refactoring/changeSignatureGesture/" + getTestName(false) + "_after.java");
|
||||
final String hint = "Change signature ...";
|
||||
if (shouldShow) {
|
||||
final IntentionAction intention = myFixture.findSingleIntention(hint);
|
||||
myFixture.launchAction(intention);
|
||||
myFixture.checkResultByFile("/refactoring/changeSignatureGesture/" + getTestName(false) + "_after.java");
|
||||
} else {
|
||||
final List<IntentionAction> intentionActions = myFixture.filterAvailableIntentions(hint);
|
||||
Assert.assertEquals(true, intentionActions.isEmpty());
|
||||
}
|
||||
}
|
||||
finally {
|
||||
detector.removeDocListener(document);
|
||||
@@ -71,7 +80,24 @@ public class ChangeSignatureGestureTest extends LightCodeInsightFixtureTestCase
|
||||
public void run() {
|
||||
myFixture.type(param);
|
||||
}
|
||||
});
|
||||
}, true);
|
||||
}
|
||||
|
||||
public void testReturnValue() {
|
||||
doTypingNoBorderTest("void");
|
||||
}
|
||||
|
||||
public void testModifier() {
|
||||
doTypingNoBorderTest("private");
|
||||
}
|
||||
|
||||
private void doTypingNoBorderTest(final String param) {
|
||||
doTest(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
myFixture.type(param);
|
||||
}
|
||||
}, false);
|
||||
}
|
||||
|
||||
public void testDeleteParamInSuperUsed() {
|
||||
@@ -90,7 +116,7 @@ public class ChangeSignatureGestureTest extends LightCodeInsightFixtureTestCase
|
||||
document.deleteString(selectionStart, selectionEnd);
|
||||
editor.getCaretModel().moveToOffset(selectionStart);
|
||||
}
|
||||
});
|
||||
}, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user