From e9070ccbc8439376c896042fe48cd96193e1cdad Mon Sep 17 00:00:00 2001 From: anna Date: Mon, 31 Dec 2012 13:30:21 +0100 Subject: [PATCH] extract method object: no need to change signature when nothing was changed by duplicates processing (IDEA-98288) --- .../src/com/intellij/refactoring/util/duplicates/Match.java | 3 ++- .../testSrc/com/intellij/refactoring/ExtractMethodTest.java | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/java/java-impl/src/com/intellij/refactoring/util/duplicates/Match.java b/java/java-impl/src/com/intellij/refactoring/util/duplicates/Match.java index 4b97e1009c4a..1289f5ec5c96 100644 --- a/java/java-impl/src/com/intellij/refactoring/util/duplicates/Match.java +++ b/java/java-impl/src/com/intellij/refactoring/util/duplicates/Match.java @@ -380,8 +380,9 @@ public final class Match { } public void changeSignature(final PsiMethod psiMethod) { - final ArrayList newParameters = patchParams(psiMethod); final PsiType expressionType = getChangedReturnType(psiMethod); + if (expressionType == null && myChangedParams.isEmpty()) return; + final ArrayList newParameters = patchParams(psiMethod); final ChangeSignatureProcessor csp = new ChangeSignatureProcessor(psiMethod.getProject(), psiMethod, false, null, psiMethod.getName(), expressionType != null ? expressionType : psiMethod.getReturnType(), newParameters.toArray(new ParameterInfoImpl[newParameters.size()])); diff --git a/java/java-tests/testSrc/com/intellij/refactoring/ExtractMethodTest.java b/java/java-tests/testSrc/com/intellij/refactoring/ExtractMethodTest.java index 257db6657387..3102c04fd29f 100644 --- a/java/java-tests/testSrc/com/intellij/refactoring/ExtractMethodTest.java +++ b/java/java-tests/testSrc/com/intellij/refactoring/ExtractMethodTest.java @@ -19,6 +19,7 @@ import com.intellij.JavaTestUtil; import com.intellij.codeInsight.CodeInsightUtil; import com.intellij.openapi.editor.Editor; import com.intellij.openapi.project.Project; +import com.intellij.psi.PsiDocumentManager; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiExpression; import com.intellij.psi.PsiFile; @@ -677,6 +678,7 @@ public class ExtractMethodTest extends LightCodeInsightTestCase { final List duplicates = processor.getDuplicates(); for (final Match match : duplicates) { if (!match.getMatchStart().isValid() || !match.getMatchEnd().isValid()) continue; + PsiDocumentManager.getInstance(project).commitAllDocuments(); processor.processMatch(match); } }